http://www.javait.org/?p=877
package com.gxa.edu;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import java.awt.FlowLayout;
import java.awt.Color;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author Administrator
* 国信安百杰高端Java培训
*/
public class Test extends JFrame {
public final String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stu";
public final String username = "sa";
public final String password = "123456";
public final String classdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public Connection conn;
public Statement stmt;
public ResultSet rs;
public Test() {
try {
Class.forName(classdriver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 利用JDBC来创建表
*/
public void createTable() {
String sql = "create table batch (a1 varchar(10),a2 varchar(500))";
try {
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
boolean f = stmt.execute(sql);
System.out.println(f);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 对数据库进行批量插入数据操作
* 执行次数100万
*/
public void insertBatch() {
//思路:将100万条数据分成n等份,1等份为1000条数据
//如何实现?
//1、必须将Connection接口的自动提交方式改为手动
//2、利用Statement接口中的如下三个方法:addBatch、clearBath、executeBatch
try {
conn = DriverManager.getConnection(url, username, password);
conn.setAutoCommit(false);
stmt = conn.createStatement();
for (int i = 0; i < 1000000; i++) {
String sql = "insert into batch values ('"+i+"', '第"+i+"条数据')";
//利用addBatch方法将SQL语句加入到stmt对象中
stmt.addBatch(sql);
if (i % 1000 == 0 && i != 0) {
//利用executeBatch方法执行1000条SQL语句
stmt.executeBatch();
stmt.clearBatch();
conn.commit();
}
}
stmt.executeBatch();
stmt.clearBatch();
conn.commit();
close(); //关闭资源
} catch (SQLException e) {
e.printStackTrace();
}
}
public void close() {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
//t.createTable();
t.insertBatch();
}
}
下面是另外一篇:
http://hi.baidu.com/a393060727/blog/item/152068f4e6d17adef2d38554.html
不过下面少了stmt.clearBatch();这样的操作,而且如果bath 与 PrepareStatement一起使用的话交果会更好。
jdbc连接数据库:首先要找到相应的数据库驱动,指定连接的数据库
加载驱动:Class.forName(驱动名);
获得连接:Connection con = DriverManager.getConnection("数据库连接","用户名","密码");
执行SQL语句:Statement && PreparedStatement
写法:Statement stmt = con.createStatement(); 或PreparedStatement pstm = con.preparedStatement(sql);
执行查询:返回结果ResultSet集 stmt.executeQuery(sql语句);
执行增删改:返回影响行数 int count = stmt.executeUpdate(sql语句);
获得游标:rs.next();判断是否有下一个游标 返回一个boolean
获得结果类型:rs.get类型名(字段名)
操作完成,关闭顺序,后打开的先关闭。
调用存储过程:CallableStatement csmt =con.prepareCall("{call p(?,?,?,?)}");
创建一个调用存储过程的对象,调用存储过程,存储过程名字叫p,他有4个参数
csmt.registerOutParament(3,Types.INTEGER);
csmt.registerOutParament(4,Types.INTEGER);//设置输出数,并设置类型
csmt.setInt(1,3);
csmt.setInt(2,5);
csmt.setInt(4,7);//设置参数的值
csmt.execute();//执行操作
csmt.getInt(3);
csmt.getInt(4);//获取存储过程的输出值
csmt.close();//关闭执行结果
批处理Batch
用:
Statement stmt = con.createStatement();
stmt.addButch(SQL语句);
stmt.addButch(SQL语句);
stmt.addButch(SQL语句);
stmt.addButch(SQL语句);
stmt.executeButh();
或:
PreparedStatement pstm = null;
pstm = con.prepareStatement("insert into aa values(?,?,?)");
pstm.setInt(1, 12);
pstm.setString(2,"李五A");
pstm.setString(3, "中文A");
pstm.addBatch();
pstm.setInt(1, 22);
pstm.setString(2,"李五B");
pstm.setString(3, "中文B");
pstm.addBatch();
pstm.setInt(1, 32);
pstm.setString(2,"李五C");
pstm.setString(3, "中文C");
pstm.addBatch();
//批量执行上面3条语句. 一口吞了,很爽
int [] counts = statement.executeBatch();
//Commit it 咽下去,到肚子(DB)里面
connection.commit();
分享到:
相关推荐
java利用jdbc连接数据库之插入数据.docx
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
spring jdbc Templatetest 访问mysql数据库,批量插入数据
一、JDBC的批量插入 一、JDBC的批量更新 一、JDBC的批量删除 一、JDBC的批量修改
java 通过JDBC对数据库进行查询 java 通过JDBC对数据库进行查询
主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
jdbc连接数据库 jdbc连接数据库 jdbc连接数据库 jdbc连接数据库 jdbc连接数据库
java使用jdbc将数据库数据导出到csv文件
基于JDBC从数据库中读取数据,在百度地图批量标注地点例程
NULL 博文链接:https://sunfish.iteye.com/blog/1455357
选课序号:36 选课序号:36 大连海事大学 数据库原理课程实验报告 (2010-2011学年第二学期) 实验八 JDBC连接数据库 班 级: 智能一班 学 号: ********** 姓 名: 徐维坚 指导教师: *** 成 绩: 2012年 6月 13日 ...
实验目的:理解JDBC接口操作数据库的方法,熟练掌握数据的增删改查。 实验内容: 1. 在MySQL或其他DBS中创建一个数据库TestDB,其中创建表user,表至少3个字段(编号,用户名,密码),然后向数据库中插入若干条记录...
JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试...
(2)利用预处理语句操作数据库; (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并...
利用JDBC连接数据库,不依耐mysql的shell命令, 适合b/s 服务器备份
使用JDBC操作数据库
如下图所示1、通过常规JDBC访问数据库目的:练习JDBC连接、操作数据库的完整过程(所有操作写在同一个类文件中即可)注意命名规范,建议:1)项目名全部小写,例
jdbc java 数据库 连接数据库 步骤
JDBC读取数据库元数据,生成JAVA实体类
程序实现了使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,数据库建议选用学生课程数据库,可以选择进行创建、插入、查询、删除和更新等操作,其中查询操作可以按学号、姓名、专业...