java如何快速将数据插入数据库

java如何快速将数据插入数据库,第1张

传统拼接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中的序列化)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10182580.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存