关于jdbc的详细介绍参照官方文档:
http://docs.oracle.com/javase/tutorial/jdbc/index.html
注:
批量执行的核心语句在于:
for (int i = 0; i < list.size(); i++) { ExLog exLog = (ExLog)list.get(i); pst.setString(1, exLog.getExLogId()); pst.setString(2, exLog.getExLogDate()); // 把一个SQL命令加入命令列表 pst.addBatch(); } // 执行批量更新 pst.executeBatch();
1:创建时的区别:
Statement stm=con.createStatement();
PreparedStatement pstm=con.prepareStatement(sql);
执行的时候:
stm.execute(sql);
pstm.execute();
2: pstm一旦绑定了SQL,此pstm就不能执行其他的Sql,即只能执行一条SQL命令。
stm可以执行多条SQL命令。
3: 对于执行同构的sql(只有值不同,其他结构都相同),用pstm的执行效率比较的高,对于异构的SQL语句,Statement的执行效率要高。
4:当需要外部变量的时候,pstm的执行效率更高.
下面是一个statement的列子 :
Java代码
package com.JDBC.proc;
import java.sql.*;
public class StatementTest {
public static void main(String args[]){
Connection conn=null;
Statement stm=null;
ResultSet rs=null;
try {
conn=DBTool.getConnection();
String sql="select EmpNo,EName from emp " +
"where empNo=7499";
stm=conn.createStatement();
rs=stm.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt(1)+"---"+rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
DBTool.release(rs, stm, conn);
}
}
}
他的主要作用阐述Statement的用法。
下面是关于prepareStatement的列子:
Java代码
package com.JDBC.proc;
import java.sql.*;
public class PrepareStatement {
public static void main(String[] args){
Connection conn=null;
PreparedStatement psmt=null;
ResultSet rs=null;
try {
conn=DBTool.getConnection();
String sql="select EmpNo,Ename " +
"from emp " +
"where EmpNo=?";
psmt=conn.prepareStatement(sql);
psmt.setInt(1, 7499);
rs=psmt.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(1)+"---"+rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
DBTool.release(rs, psmt, conn);
}
}
}
相关推荐
prepareStatement和Statement的区别
java数据库连接PrepareStatement
用JDBC实现Java与数据库的连接,该文件使用PrepareStatement实现。
PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程,下面这篇文章主要给大家介绍了关于利用JDBC的PrepareStatement打印真实SQL的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
数据库原理:为什么PrepareStatement性能更好更安全
In Oracle Metalink (Oracle's support site - Note ID 736273.1) I found that this is a bug in JDBC adapter (version 10.2.0.0.0 to 11.1.0.7.0) that when you call preparedStatement with more than 7 ...
MySQL prepare语法: PREPARE statement_name FROM preparable_SQL_statement; /*定义*/ EXECUTE statement_name [USING @var_name [, @var_name] …]; /*执行预处理语句*/ {DEALLOCATE | DROP} PREPARE statement_...
该资源中包含 JDBC 连接 MySQL 完整代码、常规 select、update 语句完整代码,以及 JDBC 批量处理数据的几种不同方式完整代码,且附带 使用说明!
Do you know how to prepare a cashflow statement?
MySQL官方将prepare、execute、deallocate统称为PREPARE STATEMENT,我习惯称其为【预处理语句】,其用法十分简单,下面话不多说,来一起看看详细的介绍吧。 示例代码 PREPARE stmt_name FROM preparable_stmt ...
JAVA连接FileMaker完整工程 包函FileMaker数据库Java连接驱动 修改工程中的FileMaker安装地址就 可以用JAVA操作FileMaker ... prepareStatement = con.prepareStatement(insertSQL); b = prepareStatement.execute();
cash flow statement,主要是会计的现金流报表的准备
详细的接收了Statement与PrepareStatement的区别
经过了三天的时间,艾玛终于写完了。。。这次是做一个不使用框架,用最原始的方法实现了java-jsp的web应用,栗子呢包含增删改查、登陆登出、分页、事务处理和权限管理这几个web应用的基本要素,界面就做得很烂了,...
android 多渠道打包,把渠道文件放入channel.txt 就行
NULL 博文链接:https://beijingwo2008.iteye.com/blog/1851542
PrepareStatement: conn.prepareStatement(String sql); CallableStatement: conn.prepareCall(String sql); 4)执行sql语句 stmt.execute(sql); stmt.executeUpdate(sql); stmt.executeQuery(sql); pstmt.execute*...
JDBC规范 ... PrepareStatement:预编译语句,性能更好 CallableStatement:调用存储过程 ResultSet:结果集,封装了多条记录 JDBC数据库连接池/Connection Pool DBCP:apache tomcat内置
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { return null;} public CallableStatement prepareCall...
PreparedStatement ps=conn.prepareStatement("select * from Contact"); ResultSet rs=ps.executeQuery(); List<Contact> list = new ArrayList(); while(rs.next()){ int id = rs.getInt("id")...