jdbc大量插入数据(prepareStatement)
来源:互联网 发布:php b2c商城系统二次开 编辑:程序博客网 时间:2024/05/16 01:21
PrepareStatement适用于较小规模的数据插入处理,大规模的使用Statement比较好(防止sql注入问题:可以使用字符串过滤)
DBUTtil.java:数据库连接类/** * @version * @description */package com.xasmall.txt;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;/** * 数据库连接类 * @author 26248 * */public class DBUTtil { public static Connection jdbaload() { Properties prop=new Properties(); Connection conn=null; try { prop.load(DBUTtil.class.getClassLoader().getResourceAsStream("config.properties")); } catch (IOException e1) { System.out.println("文件为读取成功!"); } String url=prop.getProperty("url"); String driver=prop.getProperty("driver"); String user=prop.getProperty("user"); String password=prop.getProperty("password"); try { Class.forName(driver); conn=DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { System.out.println("未加载mysql驱动!"); } catch (SQLException e) { System.out.println("未连接mysql!"); } if(conn!=null) { return conn; } else { throw new Error("数据库连接错误!"); } }}User.java:用户数据类/** * @version * @description */package com.xasmall.txt;/** * @author 26248 * */public class User { private int id; private String name; private String academy; /** * @return the id */ public int getId() { return id; } /** * @param id the id to set */ public void setId(int id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the academy */ public String getAcademy() { return academy; } /** * @param academy the academy to set */ public void setAcademy(String academy) { this.academy = academy; }}DealTxt.java:处理文本数据类:/** * @version * @description */package com.xasmall.txt;import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;/** * 将读取到的每一行处理,得到用户数据 * @author 26248 * */public class DealTxt { public static ArrayList<String> readerLine(String fileName) throws Exception { FileReader filed=new FileReader(fileName); ArrayList<String> list=new ArrayList<String>(); BufferedReader bf=new BufferedReader(filed); String str=null; while((str=bf.readLine())!=null) { list.add(str); } bf.close(); return list; } public static User dealTxt(String line) { User user=new User(); String[] str=line.split(","); user.setId(Integer.parseInt(str[0])); user.setName(str[1]); user.setAcademy(str[2]); return user; }}UserDAO.java:数据库插入实现类:/** * @version * @description */package com.xasmall.txt;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;/** * @author 26248 * */public class UserDAO { public static void insert(Connection conn,ArrayList<User> list) { try { conn=DBUTtil.jdbaload(); conn.setAutoCommit(false); String sql="insert into studentinfo(id,username,academy) value(?,?,?)"; PreparedStatement psmt=conn.prepareStatement(sql); for(User user:list) { psmt.setObject(1, user.getId()); psmt.setObject(2, user.getName()); psmt.setObject(3, user.getAcademy()); psmt.addBatch(); } psmt.executeBatch(); conn.commit(); } catch (SQLException e) { e.printStackTrace(); System.out.println("SQLException error!"); } }}Test.java:测试类:/** * @version * @description */package com.xasmall.txt;import java.sql.Connection;import java.util.ArrayList;/** * @author 26248 * */public class Test { public static void main(String[] args) throws Exception { ArrayList<User> user=new ArrayList<User>(); ArrayList<String> list=DealTxt.readerLine("src/data.txt"); for(String line:list) { user.add(DealTxt.dealTxt(line)); } for(User us:user) { System.out.println("user_id:-->"+us.getId()+"user_name:--->"+us.getName()+"user_academy:--->"+us.getAcademy()); } Connection conn = null; UserDAO.insert(conn, user); }}
文本数据:
config.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/?
user=root
password=?
data.txt:
1008611,张三,计算机学院
1008511,李四,计算机学院
1003233,元丰,计算机学院
784327,哈防护,计算机学院
阅读全文
0 0
- jdbc大量插入数据(prepareStatement)
- JDBC+批处理 插入大量数据
- java jdbc向数据库插入大量数据
- 高效批量插入大量数据----JDBC-4
- 【Java/JDBC.ORM】 jdbc插入大量数据时优化处理
- 【Java/JDBC.ORM】 jdbc插入大量数据时优化处理
- JDBC批处理-大量数据插入数据库减少插入时间
- 使用JDBC插入大量数据的性能测试
- jdbc插入大量数据时优化处理(转)
- 使用JDBC插入大量数据的性能测试
- 使用JDBC插入大量数据的性能测试
- 使用JDBC插入大量数据的性能测试
- JDBC向oracle插入大量(上万条)数据
- JDBC中使用批处理处理大量的插入数据操作
- JAVA中使用JDBC插入大量mysql中的数据
- 插入大量数据
- Oracle 插入大量数据
- Oracle 插入大量数据
- 树链剖分简介及补题1
- centos 6.8 清除内存中的系统缓存
- 积分变换
- ARM裸机编程需要知道的知识3--寄存器
- 最小生成树模板——kruskal
- jdbc大量插入数据(prepareStatement)
- Jetty 的使用
- “米录”讨论总结(二)
- 阿里云通过nginx,docker完美搭建Ngrok服务器(http,https)
- 实验一
- java任务--圆的重合测试
- SVN~恢复删除文件
- 《PHP和MySQL WEB开发》笔记第七章
- [BZOJ1223][HNOI2002]Kathy函数(数位DP/乱搞)