您的位置:首页 > 编程语言 > Java开发

addBatch()用法,java addbatch 什么时候用 这个语法什么意思

2013-03-19 22:43 429 查看
addBatch()用法
查看文章
PreparedStatement.addbatch()的使用
Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用.

1.建立链接
Connection connection =getConnection();

2.不自动 Commit
connection.setAutoCommit(false);

3.预编译SQL语句,只编译一回哦,效率高啊
PreparedStatement statement = connection.prepareStatement("INSERT INTO TABLEX VALUES(?, ?)");

//记录1
statement.setInt(1, 1);
statement.setString(2, "Cujo");
statement.addBatch();

//记录2
statement.setInt(1, 2);
statement.setString(2, "Fred");
statement.addBatch();

//记录3
statement.setInt(1, 3);
statement.setString(2, "Mark");
statement.addBatch();

//批量执行上面3条语句.
int [] counts = statement.executeBatch();

//Commit it 到(DB)里面
**
已安装了microsoft 驱动程序
jdk1.4; win2000 server; MS sql2000;

*/

import java.sql.*;
class sql
{
public static void main(String[] agrs)
{
Connection cn=null;
Statement stmt=null;
String sql=null;

try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException ex)
{
System.out.println("Not find the Driver!");
}

try
{
String urls="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webroot";//webroot 库名.TALBE 是表名;
String user="sa";
String password="password";
cn= DriverManager.getConnection(urls,user,password);

//stmt=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

sql="select top 10 * from TABLE1";
ResultSet rs= stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2)+" "+rs.getString(3));

}

rs.first();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" 1 "+rs.getString(3));

rs.last();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" 2 "+rs.getString(3));

rs.previous();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" 3 "+rs.getString(3));

rs.next();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" 4 "+rs.getString(3));

rs.absolute(2);
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" 5 "+rs.getString(3));

/*
rs.afterLast();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" "+rs.getString(3));
System.out.print(rs.isAfterLast());

rs.beforeFirst();
System.out.print(rs.getRow()+" ");
System.out.println(rs.getString(2)+" "+rs.getString(3));
*/
String sql1="update TABLE1 set 题目=? where id=? ";
PreparedStatement stmt1 = cn.prepareStatement(sql1);
String stat = new String("盛夏话足部保健");
String stat1 = UnicodeToGB(stat);//解决中文问题
stmt1.setString(1,stat1);
stmt1.setInt(2,3423);
stmt1.executeUpdate();
cn.commit();

//System.out.println(stat1);
//System.exit(0);

//cn.setAutoCommit(false);

stmt.addBatch("update TABLE1 set 题目="盛夏话足部保健1" where id="3407"");
stmt.addBatch("update TABLE1 set 题目="夏季预防中暑膳食1" where id="3408"");
stmt.addBatch("INSERT INTO TABLE1 VALUES("11","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("12","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("13","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("14","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("15","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("16","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("17","12","13","","")");
stmt.addBatch("INSERT INTO TABLE1 VALUES("18","12","13","","")");

int [] updateCounts=stmt.executeBatch();
cn.commit();
stmt.close();
cn.close();
}
catch(SQLException e)
{
System.out.println("The SQLException error!");
}
}

public static String UnicodeToGB(String strIn){
byte[] b;
String strOut = null;
if(strIn == null || (strIn.trim()).equals(""))
return strIn;
try{
b = strIn.getBytes("GBK");
strOut = new String(b,"ISO8859_1");
}
catch(Exception e){
System.out.println("unicodeToGB exception : " + e.getMessage() + "\n");
}
return strOut;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: