如何使用java代码向oracle数据库一次性插入多条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用java代码向oracle数据库一次性插入多条数据相关的知识,希望对你有一定的参考价值。

我有个List集合(泛型集合),我想使用java代码通过insert语句,把这个List集合中的数据添加到oracle数据库中!应该怎么做?打个比方我有个User的实体类(里面有还有个id,用户名,密码),我的List<User> list=new ArrayList<User>(); User u1=new User(1,'zhangsan','zhangsan'); User u2=new User(2,'lisi','lisi');
list.add(); list.add(u1); list.add(u2); public static boolean runInsert(),我在这个runInsert中怎样写代码可以把这个List集合添加到数据库中。不使用存储过程!

Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@你的主机ip :1521:orcl";// 设置连接字符串
String username = "你的用户名";
String password = "你的密码";
Connection con=java.sql.DriverManager.getConnection(url,user,password);
Statement stmt = con.createStatement();

StringBuffer sql = new StringBuffer("insert into user values (" + list.get(1).getId()+", "+list.get(1).getUserName()+", "+list.get(1).getPassword()+")");
for(int i = 2; i < list.size(); i++)
    sql.append(", ("+ list.get(i).getId()+", "+list.get(i).getUserName()+", "+list.get(i).getPassword()+")");//

sql.append(";");

  ResultSet rs = stmt.executeQuery(sql);

rs.close();
 stmt.close();
  con.close();


参考技术A Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/kxh?useServerPrepStmts=false&rewriteBatchedStatements=true","root", "root");

conn.setAutoCommit(false);
PreparedStatement ps = conn.prepareStatement("insert into user_table(id,userName,passWord) values(?,?,?)");
List<User> list=new ArrayList<User>();//你的list
for (User user:list) 
    ps.setInt(1, user.getId());
    ps.setString(2, user.getUsername());
    ps.setString(3, user.getPassword());
    ps.addBatch(); //加入批量

ps.executeBatch();//执行批量
conn.commit();//提交事务

ps.close();
conn.close();

参考技术B 用JDBC,加驱动建连接这是Java程序员的基本功之一。

以上是关于如何使用java代码向oracle数据库一次性插入多条数据的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么一次性向表中插入一条或多条数据

如何向一个oracle表中快速插入很多条数据

使用NamedParameterJdbcTemplate向oracle插入枚举类型数据

java 向数据库添加大量数据时内存溢出 在不改变内存的情况下如何解决

如何使用 Node.js 将多条记录插入 Oracle DB

如何在Oracle表中插入系统时间