传统拼接insert
into
table()
values(),(),()这种方式实现批量插入
采用数据库持久化框架,比如hibernate,根据插入的记录数,设定每多少次循环执行一次commit *** 作
不知道是不是你想要的
import javaio;
import javautil;
class str14
{
InputStreamReader stdin=new InputStreamReader(Systemin);
BufferedReader bufin=new BufferedReader(stdin);
public static void main(String args[]) throws IOException
{
new str14();//run the application
}
public str14() throws IOException//constructor
{
Hashtable htable=new Hashtable(20,075F);
dataBase(htable);
}
public str14(Hashtable htable) throws IOException //override the constructor
{
dataBase(htable);
}
public void dataBase(Hashtable htable) throws IOException
{
int count=htablesize();//get the ammount of the data in htable
int value,id,num;
String key,enter,data;
Enumeration keys=htablekeys();//get all the key in htable
Enumeration elements=htableelements();//get all the elements in htable
Systemoutprintln("
Hashtable 数据库程序
");
Systemoutprintln("(1)输入数据");
Systemoutprintln("(2)请除所有数据");
Systemoutprintln("(3)显示单笔数据");
Systemoutprintln("(4)删除单笔数据");
Systemoutprintln("(5)显示所有数据");
Systemoutprintln("(6)结束程序");
Systemoutprint("请输入您的选择:");
value=select();//call select(),return the function number
switch(value)//the function
{
case 1:
Systemoutprint("
请输入一笔数据:");//need data input
data=bufinreadLine();
count++;
key=StringvalueOf(count);
htableput(key,data);//store it to the htable
Systemoutprint("
输入完成,按任意键继续");
enter=bufinreadLine();
new str14(htable);//reenter
break;
case 2://clear all data from the htable
htableclear();
Systemoutprint("
已删除了所有数据 按任意键继续");
enter=bufinreadLine();
new str14(htable);//reenter
break;
case 3:
Systemoutprint("
请输入要显示的数据编号:");
id=getid(count);//call getid()
key=StringvalueOf(id);
Object select=htableget(key);//fetch the data from the htable
data=selecttoString();
Systemoutprint("
编号"+" "+"内容");
Systemoutprintln("
"+key+" "+data);//display the data
Systemoutprint("
按任意键继续");
enter=bufinreadLine();
new str14(htable);//reenter
break;
case 4:
Systemoutprint("请输入要删除的数据编号:");
id=getid(count);
key=StringvalueOf(id);
htableremove(key);//remove data
count--;
num=count;
Systemoutprint("已删除了所选择的数据按任意见继续");
Hashtable htable1=new Hashtable(20,075F);//create new htable named htable1
elements=htableelements();//fetch all the data from htable
while(elementshasMoreElements())
{
key=StringvalueOf(num);//a new value
data=(String)elementsnextElement();//fetch content of the data
htable1put(key,data);//store it to htable1
num--;
}
htableclear();
enter=bufinreadLine();
new str14(htable1);
break;
case 5:
String[] sortkey=new String[count];//create a new sort array
String[] sortdata=new String[count];
num=count;
elements=htableelements();
keys=htablekeys();
while(elementshasMoreElements())
{
key=(String)keysnextElement();//fetch value of key
data=(String)elementsnextElement();//fetch value of data
sortkey[num-1]=key;//store the value of key to sortkey array
sortdata[num-1]=data;//store the value of data to sortdata array
num--;
}
Systemoutprintln("
编号"+" "+"内容");
for(int i=0;i<count;i++)//display all content after sorting
Systemoutprintln(" "+sortkey[i]+" "+sortdata[i]);
Systemoutprint("
目前共有"+count+"笔数据");
Systemoutprint("
按任意键继续");
enter=bufinreadLine();
new str14(htable);
break;
default:
}
}
public int select() throws IOException//method of getting a function selector
{
String input;
int value=0;
input=bufinreadLine();//read a input from keyboard
try
{
value=IntegerparseInt(input);//convert a string to a int value
}catch(NumberFormatException e)//can't vonverted
{
Systemoutprint("请输入选项1~6:");
value=select();
}
if(value>6||value<1)//if exceed then print a message and reenter
{
Systemoutprint("请输入选项1~6:");
value=select();
}
return value;//return a value
}
public int getid(int count)throws IOException//a method of return the number of data
{
String input;
int value=0;
input=bufinreadLine();//read a user input string from keyboard
try
{
value=IntegerparseInt(input);//convert the string to a int
}catch(NumberFormatException e)//if can't convert to a integer then reenter
{
Systemoutprint("请输入数据编号:");
value=getid(count);
}
if(value>count)//the input value is out of bound
{
Systemoutprint("无此编号的数据,请重新输入:");
getid(count);
}
return value;//return a value
}
}
首先说明一下序列化的知识:java中的序列化()机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象
序列化机制在java中有着广泛的应用,EJB、RMI等技术都是以此为基础的
序列化机制是通过java
io
类和java
io
类来实现的
在序列化(serialize)一个对象的时候,会先实例化一个对象,然后调用其writeObject()方法;在反序列化(deserialize)的时候,则会实例化一个对象,然后调用其readObject()方法
上面您的错误,就是在于有一个或者几个没有"序列化"的数据,导致没有办法创建输出流,导致发生的java
io
之所以要序列化,我猜测是因为您的数据里面存在一个对象型的数据,但是该对象没有实现序列化
比如:您有一个字段为address,这个字段您是通过一个类Address来描述的,Address里面可能有province、city、street等等属性或者一些setter和getter,如果这个类,没有实现序列化,往往会出现这个问题
毕竟没有看到程序,是我的一个猜测,请检查一下程序或者发出来进行进一步讨论
请注意看如下代码:
public List getObject(String sql, Object[] object) { //sql执行语句,object是你sql语句里面的参数
List list = new ArrayList();
Connection con = null;
PreparedStatement pre = null;
ResultSet rs = null;
try{
con = C3P0UtilgetInstance()getConnection(); //这是你获得数据库连接,你把这里改成调用你自己写的jdbc方法
pre = conprepareStatement(sql); //执行sql语句
if(object!=null){
for(int i=0;i<objectlength;i++){
presetObject(i+1, object[i]); //给sql里面的参数进行赋值
}
}
rs = preexecuteQuery();
while(rsnext()){
Users u = new User();
usetUserName(rsgetString("UserName"));
usetUserPas(rsgetString("UserPas")); listadd(u);
}
}catch(Exception e){
eprintStackTrace();
return null;
}finally{
C3P0Utilclose(con, pre, rs); //关闭数据库资源
}
return list; //返回list集合
}
注意:list里面保存的是User对象的信息
你要获得User对象的信息,那么就要遍历list
for(int i=0;i<listsize;i++){
User u = (User)listget(i); Systemoutprintln("UserName:"+ugetUserName());
Systemoutprintln("UserPas:"+ugetUserPas());
} 上面是针对list里面有很多个User对象,当然list里面只有一个User对象,也是可以的。
如果你的list里面只有一个User,那么可以直接:User u = (User)listget(0);
Systemoutprintln("UserName:"+ugetUserName());
Systemoutprintln("UserPas:"+ugetUserPas());
希望对你有帮助!
String str = "59522 842";
String[] strArr = strsplit(" ");
if (strArrlength == 2) {
sql = " VALUES ('" + strArr[0] + "','" + strArr[1] + "')";
}
用String的split()方法将字符串拆分为数组
职工一旦确定了就是固定的,你最好把它的记录先填定数据库中,然后设一个列表示此职员是否来上班,(比如可以设一列为 typeId 若为1, 则表示已上班,为0则表示未上班,其它值表示迟到等。)而你只需要修改此列的值就可以了。
如果每上班一次你就添加一次,数据库资源太浪费了,而且根本不可取。可以说基本不会有这种做法。。
mysql数据库
SELECT id FROM good WHERE id<10;
id
1
2
3
4
5
6
7
8
9
SELECT GROUP_CONCAT(id) FROM good WHERE id<10;
1,2,3,4,5,6,7,8,9
进行了行转列
利用java的split对逗号进行分割,输出的就是数组。
方法二
查询出来存入list中,然后循环list,给数组赋值就行
以上就是关于java如何快速将数据插入数据库全部的内容,包括:java如何快速将数据插入数据库、用JAVA编写一个APPLET,实现用户输入数据并写入数据库和单个字段的查询、在java里如何使用数据库中的序列(java中的序列化)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)