`
nbtlxx
  • 浏览: 253174 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

jdbc批量更新简单使用

阅读更多
前阵子做的一个lucene全文检索的小例子,里面涉及jdbc的批量更新,在此发布出来,与大家共享。
也是作为自己学习过程的复习和记录。

找个类的主要功能如下:
* 1. 读取包含专业词库的txt文件
* 2. 根据中文分词组件进行切分
* 3. split方法处理,返回字符串数组
* 4. 写出到txt文件输出
* 5. 使用sql批量更新方式插入数据库
*/


/**
 * 
 */
package net.tuolian.product.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;

import jeasy.analysis.MMAnalyzer;

/**
 * @author sean
 * 
 * @since 2009/04/17
 * 1. 读取包含专业词库的txt文件
 * 2. 根据中文分词组件进行切分
 * 3. split方法处理,返回字符串数组
 * 4. 写出到txt文件输出
 * 5. 使用sql批量更新方式插入数据库
 */
public class JdbcBatchUpdate {

	static String sql = "insert into test04 values (?,?)";	
	Connection conn = null;
	PreparedStatement pstmt = null;

	/**
	 * @param args
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 * @throws IOException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public static void main(String[] args) throws SQLException,
			ClassNotFoundException, IOException, InstantiationException, IllegalAccessException {
		// TODO Auto-generated method stub
		JdbcBatchUpdate update = new JdbcBatchUpdate();
		update.init();
		
		//读取txt文件
		BufferedReader reader = new BufferedReader(new FileReader("keywordsource//output.txt"));
		
		//打开输出文件
		BufferedWriter writer = new BufferedWriter(new FileWriter("newoutput.txt"));
		
		String str = null;
		StringBuffer sb = new StringBuffer();
		
		while((str= reader.readLine())!=null){
			sb.append(str + " ");
		}
		//中文分词插件,JEAnalysis, 根据" "空格,将sb的字符串进行分词
		MMAnalyzer analyzer = new MMAnalyzer();
		String msg = analyzer.segment(sb.toString(), " ");		
		
		//将字符串更加空格进行分割,返回字符串数组
		String[] terms = msg.toString().split(" ");
		
		//输出到txt文件
		for(int i=0; i<terms.length;i++){
			System.out.println(i + terms[i]);
			writer.write(terms[i] + "\r\n");
		}
		writer.flush();
		writer.close();
		
		//执行mysql批量更新到数据库
		update.batchUpdate(terms);
		
		
	}
	
	/**
	 * 数据库连接初始化
	 * 1. 加载mysql jar包
	 * 2. 获得getConnection
	 * 3. 获得PreparedStatement
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 */
	public void init() throws SQLException, ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		conn = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/db_advertisement", "root", "root");
		conn.setAutoCommit(false);
		pstmt = (PreparedStatement) conn
				.prepareStatement(sql);
		System.out.println(new Date());
	}
	
	/**
	 * 批量更新
	 * 先加入批量, pstm.addBatch()
	 * 然后executeBatch(), 批量更新
	 * conmit(), 更新
	 * @param terms
	 * @throws SQLException
	 */
	public void batchUpdate(String[] terms) throws SQLException{		
		for (int i = 0; i < terms.length -1; i++) {			
			//此处注意setInt(1, i), 字段名称和栏目数必须匹配
			pstmt.setInt(1, i);
			pstmt.setString(2, terms[i]);
			pstmt.addBatch();
			System.out.println(i);
		}
		
//增加到批量工作任务中
		pstmt.executeBatch();
		System.out.println(new Date());
//提交执行
		conn.commit();
		pstmt.close();
		conn.close();
	}
}



1
3
分享到:
评论

相关推荐

    jdbc-批量插入数据

    本文将深入探讨如何使用JDBC进行批量插入数据,这在处理大量数据时能显著提高性能。 批量插入数据是数据库操作中常见的一种优化策略,特别是在数据分析、数据迁移或大数据处理等场景。传统的单条插入方式可能会导致...

    jdbc批量 (绝对经典)

    ### JDBC批量操作详解:效率与性能的提升策略 在数据库操作中,批量处理是一种常见的优化技术,用于提高数据处理的效率和性能。JDBC(Java Database Connectivity)作为Java应用程序与数据库交互的标准API,提供了...

    三种JDBC批量插入编程方法的比较

    本篇文章将深入探讨三种不同的JDBC批量插入编程方法,并进行对比分析,以帮助开发者更好地理解和选择适合的批量处理方式。 1. **使用PreparedStatement的addBatch()和executeBatch()** JDBC提供了...

    java实现jdbc批量插入数据

    本篇文章将详细介绍如何使用Java实现JDBC批量插入数据,并比较三种常见的JDBC批量插入编程方法。 **方法一:使用PreparedStatement加批量的方法** PreparedStatement是Statement的子接口,允许预编译SQL语句,这...

    jdbc批量操作数据分析与实例

    ### JDBC批量操作数据分析与实例 #### 一、引言 在日常软件开发中,数据库操作是必不可少的一部分。其中,批量操作作为一种高效的处理方式被广泛应用于数据处理任务中。本文将通过对一个具体的Java程序示例(使用...

    sql2005 批量更新问题的解决方法

    - **解决方案**:强烈建议更新至支持批量更新的新版本 JDBC 驱动,例如使用 SQL Server 2005 的 JDBC 驱动版本 1.2 或更高版本。 - **具体错误**:如果出现错误提示“`SQLServerException: sp_cursoropen/sp_...

    JDBC的批量处理数据

    这种方式适用于简单的SQL语句,如批量插入或更新。通过`Statement`对象的`addBatch()`方法添加待执行的SQL语句,然后调用`executeBatch()`来一次性执行所有语句。例如: ```java Statement stmt = conn....

    用JDBC连接OpenGauss Postgresql 实现增删改查功能的图书管理系统

    在本项目中,我们主要探讨如何使用Java的JDBC(Java Database Connectivity)接口来连接OpenGauss PostgreSQL数据库,实现一个图书管理系统的增删改查功能。OpenGauss是一款开源的关系型数据库管理系统,它与...

    JSP+Servlet+JDBC实现MYSQL增删改查

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)、Servlet和JDBC(Java Database Connectivity)来实现MySQL数据库的增、删、改、查操作。这种方法在小型项目中非常常见,但也有其局限性,如代码与SQL语句...

    JDBC简单写法JDBC简单写法JDBC简单写法

    2. **大数据量处理**:在JDBC中,对于大量数据的插入,我们可以使用批量处理(batch processing),如`addBatch()`和`executeBatch()`方法,这样可以显著提升性能,减少与数据库的交互次数。 3. **事务处理**:JDBC...

    02_传智播客JDBC_编写一个简单的jdbc例子程序.rar

    标题中的“02_传智播客JDBC_编写一个简单的jdbc例子程序”表明这是一个关于Java数据库连接(JDBC)的教程,由传智播客提供,内容可能涉及如何使用JDBC来执行基本的数据库操作。描述和标签与标题一致,暗示这个压缩包...

    jdbc+jsp实现简单员工管理系统.doc

    本文档主要介绍了如何使用Java Web技术,特别是JDBC和JSP,来实现一个简单的员工管理系统。以下是对核心知识点的详细说明: 1. **JDBC(Java Database Connectivity)**:JDBC是Java中用于与关系型数据库进行交互的...

    JDK版本与JDBC版本的关系

    - JDBC 2.0包括了一些重要的增强特性,如支持存储过程、批量更新等。 - 这一时期,JDBC的功能得到了显著增强,使得Java应用程序能够更加高效地处理数据库操作。 - **JDK 1.3+ J2EE - JDBC 2 EE** - JDK 1.3结合...

    JDBC简单封装类

    在"JDBC简单封装类"中,这些步骤可能会被封装到单独的方法里,比如`connect()`用于建立连接,`executeQuery(String sql)`和`executeUpdate(String sql)`分别用于执行查询和更新,`getResultSet()`用于获取结果集,...

    Jmeter中JDBC request多条SQL语句使用.docx

    本文将重点介绍如何在JMeter中使用JDBC Request来执行多条SQL语句,包括查询与更新操作,并针对不同类型的SQL语句提供最佳实践。 #### 二、JDBC Request概述 JDBC Request是JMeter提供的一个用于执行数据库操作的...

    sqljdbc42.jar

    sqljdbc42.jar还支持高级特性,如批量更新、存储过程调用、流处理、以及SQL Server特有的功能如XML列、全文搜索等。同时,它还包含了对SSL加密连接的支持,以确保数据传输的安全性。 值得注意的是,为了保持应用的...

    jdbc详解(基础版本)

    ### JDBC详解(基础版本) #### 一、JDBC概述 **1.1 什么是JDBC?...掌握了这些基本操作后,便可以进一步探索更复杂的数据库操作,例如使用`PreparedStatement`处理带参数的SQL语句、批量更新操作等。

    JDBC连接使用的包与DBUtils工具包

    它支持预编译的PreparedStatement,可以防止SQL注入攻击,并能处理批量更新操作。 2. **ResultSetHandler**: 这是一组接口和实现,用于将ResultSet中的数据转换为Java对象。例如,`ArrayListHandler`将结果集转换为...

    JDBC连接Mysql数据库案例

    本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC驱动注册**: 在Java中,连接MySQL数据库首先需要加载并注册JDBC驱动。MySQL的JDBC驱动类是`...

    JDBC_MYSQL.rar_JDBC-MYSQL_java jdbc mysql_java sql 简单

    - JDBC支持批量处理SQL语句,可以提高性能,例如使用`addBatch()`和`executeBatch()`方法。 - 使用PreparedStatement可以防止SQL注入攻击,并提高查询效率。 7. **事务管理**: - JDBC提供对数据库事务的支持,...

Global site tag (gtag.js) - Google Analytics