Java遍历arraylist后储存为到数据库mysql里的一个column里,怎么弄

Java遍历arraylist后储存为到数据库mysql里的一个column里,怎么弄,第1张

简单写了下。你测试看看行不?

publicstaticvoid main(String[] args) {

Connection conn =getConn();

Statement stmt = null;

ResultSet rs = null;

try {

stmt = conncreateStatement();

List<String> arraylist = new ArrayList<String>();

int n = 0;

String sql=null;

//迭代List,批量入库,每迭代100次批量执行一次。

for(String str : arraylist){

if(n++ % 100 == 0){

stmtexecuteBatch();

}

sql = "insert into table (name) values ('"+str+"')";

stmtexecuteUpdate(sql);

}

//把最后%100不等于0的数据批量入库。

stmtexecuteBatch();

//提交。

conncommit();

//从数据库中读出

sql = "select name from table";

rs = stmtexecuteQuery(sql);

while(rsnext()){

Systemoutprintln(rsgetString(1));

}

} catch (SQLException e) {

try {

connrollback();

} catch (SQLException ex) {

exprintStackTrace();

}

eprintStackTrace();

}finally{

try {

if(rs != null){

rsclose();

rs = null;

}

if(stmt != null){

stmtclose();

stmt = null;

}

if(conn != null){

connclose();

conn = null;

}

} catch (SQLException e) {

eprintStackTrace();

}

}

}

//获取数据库连接

privatestatic Connection getConn(){

return null;

}

理论上说,不停地建立数据库连接、查询、断开数据库连接这种 *** 作是很慢的,所以把要查的东西放到Map中会快很多。但实际上我们多数情况下不会把数据查出来放到Map中,因为查询的数据往往很多,全都放到内存中去根本就不现实,就算你服务器100G的内存也不够用。所以我们通常的做法就是用数据连接池,具体做法我就不说了,用兴趣的话可以查查数据连接池。

Java一般有以下几种遍历数组元素的方法:

1根据下标遍历(即为传统的for循环遍历)

for(int i = 0; i < testlength; i++){systemoutprintln(test[i])}这种方法简单粗暴易使用

2foreach遍历

3迭代器遍历

4stream遍历

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

//stmtexecuteUpdate("create table People(name varchar(255),A int,B int)");

//stmtexecuteUpdate("insert into People values('张三',1,0)");

//stmtexecuteUpdate("insert into People values('李四',2,1)");

//stmtexecuteUpdate("insert into People values('王五',3,1)");

//stmtexecuteUpdate("insert into People values('赵云',4,2)");

//stmtexecuteUpdate("insert into People values('张飞',5,3)");

public class Test {

private static void query(Connection conn,String sql,int a) {

PreparedStatement stmt = null;

ResultSet rs = null;

try {

stmt = connprepareStatement(sql);

stmtsetInt(1, a);

rs = stmtexecuteQuery();

while (rsnext()) {

Systemoutprintln(rsgetString("name")+":"+rsgetInt("A"));

query(conn,sql,rsgetInt("A"));

}

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (rs != null) {

try {

rsclose();

rs=null;

Systemoutprintln(a+":rs closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

if (stmt != null) {

try {

stmtclose();

stmt=null;

Systemoutprintln(a+":stmt closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

Systemoutprintln("===============================");

}

public static void main(String[] args) {

Connection conn = null;

try {

conn = DriverManagergetConnection("jdbc:derby:E:/Derby/test");

String sql="select from people where B=";

query(conn,sql, 1);

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (conn != null) {

try {

connclose();

Systemoutprintln("Connection关闭。");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

}

}

for循环就可以了

public static void main(String[] args) {

String[] temp = {"aa","bb","cc"};

for(int i=0;i<templength;i++){

Systemoutprintln(temp[i]);

}

}

以上就是关于Java遍历arraylist后储存为到数据库mysql里的一个column里,怎么弄全部的内容,包括:Java遍历arraylist后储存为到数据库mysql里的一个column里,怎么弄、java中是把数据库的数据都查出来遍历到map里面在查找快,还是一遍一遍的根据响应的字段查找快、Java 遍历数组元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存