1899942 ,新疆-乌鲁木齐
1899944 ,新疆-哈密
1899946 ,新疆-吐鲁番
1899948 ,新疆-塔城
1899950 ,新疆-克拉玛依
1899952 ,新疆-克拉玛依
1899954 ,新疆-昌吉
1899956 ,新疆-昌吉
1899958 ,新疆-伊犁
1899960 ,新疆-库尔勒
1899962 ,新疆-库尔勒
1899964 ,新疆-喀什
1899966 ,新疆-阿克苏
1899968 ,新疆-哈密
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
有几万条这样的数据需要插入数据库
public class Test2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
String sql = "insert into mobile_place(number,place) values(?,?)";
int count=0;
PreparedStatement pstmt = null;
Connection conn = JDBCUtil.getConnection();
try {
pstmt = conn.prepareStatement(sql);
InputStreamReader is = new InputStreamReader(new FileInputStream(new File("D:/CC.txt")),"utf-8");
BufferedReader br = new BufferedReader(is);
//设置数据手动提交,自己管理事务
conn.setAutoCommit(false);
String s1 = null;
String s2 = null;
while(br.readLine() != null){
count++;//每读取一行数据,计数器+1
String str = br.readLine().toString().trim();//读取一行数据
s1 = str.substring(0, str.indexOf(","));//取逗号以前的一段
s2 = str.substring(str.indexOf(",")+1,str.length());//取逗号之后的一段
pstmt.setString(1, s1);
pstmt.setString(2, s2);
pstmt.addBatch();//用PreparedStatement的批量处理
if(count%1000==0){//当增加了1000个批处理的时候再提交
pstmt.executeBatch();//执行批处理
conn.commit();//提交
conn.close();//关闭数据库
conn = JDBCUtil.getConnection();//重新获取一次连接
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sql);
}
System.out.println("已插入"+count+"条数据");
}
if(count%1000!=0){//while循环外的判断,为了防止上面判断后剩下最后少于500条的数据没有被插入到数据库
pstmt.executeBatch();
conn.commit();
}
long end = System.currentTimeMillis();
System.out.println("共花费时间:"+(end-start));
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
//getConnection()为获取数据库连接
public static Connection getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, userName, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
分享到:
相关推荐
1. 适当设置批处理大小:根据数据库和应用需求调整批处理中SQL语句的数量,过大可能导致内存问题,过小则无法充分利用批处理的优势。 2. 错误处理:如果批处理中某个语句失败,可以捕获BatchUpdateException来获取...
Java Database Connectivity (JDBC) 是Java平台中用于与数据库交互的一组接口和类,它是Java标准API的一部分,允许Java开发者执行SQL语句并处理结果。在处理大量数据时,JDBC提供了批处理功能,以提高性能和效率。...
在SQL Server 2000的情况下,Microsoft提供了JDBC驱动,使得Java开发者能够轻松地在Java应用中集成SQL Server。`sqljdbc.jar`是微软早期发布的JDBC驱动程序,适用于Java 2 Platform, Standard Edition (J2SE) 5.0及...
在本文中,我们将深入探讨JDBC与SQL Server 2012结合使用的相关知识点。 1. **JDBC驱动类型** JDBC提供四种类型的驱动,分别为类型1、2、3和4。对于SQL Server 2012,我们通常使用类型4的Java Native Access(JNA...
本文将深入解析JDBC Driver 3.0以及其在SQL Server环境中的应用。 JDBC Driver 3.0是Java SE 6引入的一个重要更新,它带来了许多增强功能和性能改进,旨在提升开发者的体验和应用程序的效率。此版本的驱动程序支持...
标题中的“JDBC连接SQL Server 2008 R2的驱动”指的是使用Java数据库连接(JDBC)技术与Microsoft SQL Server 2008 R2数据库进行交互所需的驱动程序。JDBC是Java平台的标准接口,它允许Java应用程序与各种类型的...
**性能优化**:SQLJDBC4还提供了性能优化选项,例如批处理操作,允许一次提交多个SQL语句,减少网络往返次数。还可以调整连接池大小、超时设置等以适应不同的负载需求。 总之,SQLJDBC和SQLJDBC4为Java开发者提供了...
在Java数据库连接(JDBC)中,增删改查(CRUD)操作是与数据库交互的基础,事务处理、批处理和预编译SQL语句则是提高效率和保证数据一致性的关键技术。以下是对这些概念的详细说明: 1. **JDBC增删改查(CRUD)**:...
1. **添加依赖**: 将`sqljdbc.jar`或`sqljdbc4.jar`添加到项目的类路径中。如果你使用的是现代构建工具如Maven或Gradle,可以在pom.xml或build.gradle文件中添加相应的依赖项。 2. **注册驱动**: 在Java代码中,...
下面将详细阐述SQL Server JDBC驱动及其在SQL Server 2008中的应用。 SQL Server JDBC驱动是由微软官方开发的,它遵循Java Database Connectivity (JDBC) API标准,允许Java开发者通过编写Java代码与SQL Server...
安装方法同样是双击`C:\SQL2KSP4`文件夹中的`setup.bat`批处理文件。值得注意的是,如果不安装SP4补丁,则Java程序将无法成功连接SQL Server 2000数据库。 3. **配置Java驱动**: 在安装好SQL Server 2000及SP4补丁...
MySQL批处理是JDBC提供的一种优化数据库操作的方法,它允许开发者一次提交多个SQL语句,从而提高数据处理效率。本文将深入探讨JDBC在MySQL数据库中的应用,以及如何实现批处理操作。 首先,理解JDBC的基础知识至关...
批处理导入SQL文件是数据库管理中的一个重要操作,它主要用于高效地执行大量SQL语句,比如在数据迁移、数据库初始化或更新时。批处理通过合并多个SQL命令为一个单一的处理单元,可以显著提高数据处理速度,减少网络...
SQL Server JDBC驱动2.0提供了多种特性,如支持批处理、事务管理、预编译语句(PreparedStatement)、结果集(ResultSet)、游标(Cursor)、元数据查询以及SQL Server特有的功能,如XML列类型和存储过程。...
1. **JDBC驱动配置**:SQLServer JDBC驱动需要在项目中添加依赖,如上述文件。在Maven项目中,可以在pom.xml中声明对应的依赖。 2. **事务管理**:SQLServer支持ACID事务,JDBC提供了`Connection.setAutoCommit()`...
在Java编程中,连接到SQL Server 2000数据库通常需要使用Java Database Connectivity (JDBC) API。JDBC提供了一种标准的方式来访问各种类型的数据库,包括SQL Server 2000。以下是一些关于如何使用Java通过JDBC连接...
另外,如果你需要在Java或其他编程语言环境中实现批处理,可以通过JDBC连接Oracle数据库,调用Statement对象的`executeBatch()`方法来执行预编译的SQL语句集合。这通常涉及以下步骤: 1. 创建数据库连接。 2. 预编译...
这个驱动包是专门为那些使用Java平台标准版(Java SE)7或更高版本的开发者设计的,因为它的名字`sqljdbc4`中的数字4暗示了它支持Java SE 7的 JDBC 4.0 规范。下面将详细解释`sqljdbc4`驱动包的相关知识点。 1. **...
7. **批处理**:JDBC提供批处理功能,可以一次性发送多条SQL语句,提高效率。 8. **结果集处理**:通过ResultSet对象获取查询结果,可以迭代遍历记录,也可以通过`next()`方法逐行读取。 9. **异常处理**:使用`...
2. 引入JDBC API:在Java代码中,导入所需的JDBC类,例如`java.sql.Connection`, `java.sql.DriverManager`, `java.sql.Statement`, 和 `java.sql.ResultSet`。 3. 注册驱动:使用`Class.forName()`方法注册SQL ...