/**
* 设置数据库连接工具类
* 包括(连接、注册驱动、释放连接)
*
*
* 设置数据库连接工具类
* 包括(连接、注册驱动、释放连接)
*
*
*/
public
final
class
DBUtils {
private
static
String mysqlurl =
"jdbc:mysql://....../mytest"
;
private
static
String accessurl =
"jdbc:mysql://...../mytest"
;
private
static
String user =
"root"
;
private
static
String password =
"root"
;
// 获得连接
public
static
Connection getAccessConn()
throws
SQLException {
return
DriverManager.getConnection(accessurl, user, password);
}
public
static
Connection getMySqlConn()
throws
SQLException {
return
DriverManager.getConnection(mysqlurl, user, password);
}
// 释放连接
public
static
void
free(ResultSet rs, PreparedStatement ps, Connection conn) {
try
{
if
(rs !=
null
) {
rs.close();
}
}
catch
(SQLException e) {
e.printStackTrace();
}
finally
{
try
{
if
(ps !=
null
) {
ps.close();
}
}
catch
(SQLException e) {
e.printStackTrace();
}
finally
{
try
{
if
(conn !=
null
) {
conn.close();
}
}
catch
(SQLException e) {
e.printStackTrace();
}
}
}
}
// 加载驱动
static
{
try
{
Class.forName(
"com.mysql.jdbc.Driver"
);
}
catch
(ClassNotFoundException e) {
System.out.println(
"驱动加载出错"
);
}
}
}
使用测试类
public
class
BatchExample {
private
static
Connection mysqlConn =
null
;
private
static
ResultSet rs =
null
;
// 总条数
private
static
int
allCount =
10000
;
// 分批条数
private
static
int
preCount =
1000
;
// 计数器
private
static
int
count =
0
;
private
static
String insertSQL =
"insert into users(firstname, lastname, age) values(?, ?, ?)"
;
private
static
PreparedStatement mysqlPs =
null
;
public
static
void
main(String[] args)
throws
SQLException {
try
{
mysqlConn = DBUtils.getMySqlConn();
mysqlPs = mysqlConn.prepareStatement(insertSQL);
//执行操作不提交,最后通过手动进行提交事务
mysqlConn.setAutoCommit(
false
);
long
start = System.currentTimeMillis();
for
(
int
i =
1
; i <= allCount; i++) {
mysqlPs.setString(
1
,
"firstname"
+ i);
mysqlPs.setString(
2
,
"lastname"
+ i);
mysqlPs.setInt(
3
,
23
);
//先将数据暂存起来
mysqlPs.addBatch();
if
((i % preCount) ==
0
){
//将暂存的数据进行批量执行
mysqlPs.executeBatch();
System.out.println(
"当前进行完毕===>"
+ (++count) * preCount +
"条"
);
}
}
long
end = System.currentTimeMillis();
System.out.println(
"数据导入完毕,所用时间为: "
+ (end - start) +
" ms"
);
}
catch
(Exception e) {
mysqlConn.rollback();
System.out.println(
"数据出错,已进行回滚"
);
throw
new
RuntimeException();
}
finally
{
//进行事务提交
mysqlConn.commit();
DBUtils.free(rs, mysqlPs, mysqlConn);
}
}
}
相关推荐
例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用PreparedStatement加批量的方法** 使用`...
对于大型数据集,可能需要考虑使用数据库特定的批量插入优化,例如MySQL的LOAD DATA INFILE命令,或者通过BULK INSERT在SQL Server中进行批量导入。这些方法通常比JDBC的批量处理更快,但不适用于所有情况。 在实际...
在数据库管理中,批量导入数据是一项常见的操作,尤其在处理大量结构化信息时,它可以显著提高工作效率。批量导入数据能够避免手动逐条插入的繁琐,节约时间并减少人为错误。以下将详细介绍批量导入数据库中数据的...
本话题聚焦于如何批量导入图片到Oracle数据库,这是一种常见的需求,特别是在处理大量图像数据的项目中。Oracle数据库作为一款强大的关系型数据库管理系统,支持多种类型的数据存储,包括BLOB(Binary Large Object...
本文将详细介绍如何利用Java实现从Excel批量导入数据到MySQL数据库。 首先,我们需要了解两个关键的库:Apache POI 和 JDBC。Apache POI 是一个开源的Java库,用于读写Microsoft Office格式的文件,包括Excel。JDBC...
在IT行业中,照片批量导入导出是一项常见的任务,特别是在数据管理、媒体库建设或网站维护等领域。本场景涉及的关键技术主要是数据库操作、图像处理以及批处理能力。以下将详细阐述这些知识点: 1. **Oracle数据库*...
在IT行业中,Excel批量导入数据库是一项常见的数据处理任务,尤其在企业后台管理系统中,它能够高效地处理大量数据,提高工作效率。本知识点主要涉及以下几个方面: 1. **Excel数据处理**:Excel是一款强大的电子...
该项目是一款基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出解决方案源码,包含22个文件,其中包括10个Java源文件、2个Markdown文件、2个XML文件、1个Git忽略文件、1个JAR包文件、1个属性文件、...
**JAVA恢复数据** 和**导入SQL脚本** 是数据备份的逆过程。一旦需要恢复,Java程序可以连接到数据库,读取备份文件,然后使用`Statement`执行`INSERT INTO`、`UPDATE`或`DELETE`语句来恢复数据。此外,如果备份是SQL...
在Java平台上,批量导入Excel数据是一项常见的任务,特别是在数据分析、数据迁移或系统集成等场景下。这个过程涉及读取Excel文件、处理数据并将其有效地存入数据库。以下是一些关键的知识点,涵盖了从读取Excel到...
通过以上步骤,我们便可以利用Java和Apache POI库实现从Excel文件批量导入数据到数据库的功能。这在数据迁移、数据同步、报表导入等场景下非常实用。在处理大量数据时,批量导入不仅提高了效率,也降低了单条插入...
- **批量导入**:为提高效率,Elasticsearch-JDBC使用批量导入机制,将多条数据作为一个批次提交。 4. **使用步骤** - **安装**:下载elasticsearch-jdbc-2.2.0.0压缩包,将其解压至Elasticsearch的plugins目录下...
在IT行业中,将Excel数据...通过上述步骤,你可以成功地使用Apache POI和JDBC将Excel数据批量导入到MySQL数据库。这个过程在数据迁移、数据分析以及系统集成等场景下非常实用,提高了工作效率并减少了手动操作的错误。
除了从本地文件系统导入数据外,还可以直接从 HDFS 中导入数据。这种方式避免了数据的额外拷贝过程,提高了效率。 **示例**: 假设 HDFS 中存在一个名为 `rcth0.txt` 的文件,内容如下: ```plaintext 4 wyp11 23...
在软件开发与数据库管理过程中,批量导入数据是一项常见的任务。特别是在进行系统测试时,为了确保系统的稳定性和性能,通常需要大量的测试数据。手动创建这些数据既费时又容易出错,因此,开发一种自动化的批量数据...
本示例以"读取txt-jdbc导入百万级数据.rar"为主题,探讨了如何利用Spring的JdbcTemplate工具处理百万级别的文本数据并将其导入数据库。以下是对这个主题的详细解释: 1. **JDBC (Java Database Connectivity)**:...
在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....
Java JDBC(Java Database ...通过这种方式,你可以构建更复杂的数据处理应用程序,如数据导入、ETL流程或数据分析任务。在实际项目中,为了提高性能和可维护性,可以考虑使用Spring JdbcTemplate或MyBatis等ORM框架。
对于数据类型不匹配,需要根据具体情况转换数据类型,确保数据能正确导入。 文件名为"ImportUserData"可能代表了一个用于迁移用户数据的类或方法。在实现这个功能时,我们可能需要读取用户表,处理每一行数据,然后...