05.JDBC编程之处理存储过程&Transaction
转载请标明出处:http://blog.csdn.net/u012637501
一、存储过程处理
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- /*MySQL数据库编程
- * 实例(6):JDBC批量处理存储过程*/
- public class JDBC_Procedure {
- public static void main(String[] args) {
- //0.连接数据库相关参数
- String url="jdbc:mysql://localhost:3306/jdbc_test_db"; //数据库URL(资源定位唯一标识符)
- String DBusername="root"; //数据库用户名
- String DBpasswd="111111"; //数据库密码
- //1.加载数据库驱动,将Driver注册到DriverManager中
- try{
- Class.forName("com.mysql.jdbc.Driver");
- }catch(ClassNotFoundException e){
- e.printStackTrace();
- }
- //2.通过数据库URL连接到数据库
- Connection conn=null;
- CallableStatement callStmt=null;
- try{
- //3.获得表示连接到数据库的Connection对象
- conn=DriverManager.getConnection(url, DBusername, DBpasswd);
- //4.获取执行存储过程SQL语句的CallableStatement对象
- callStmt=conn.prepareCall("call pro(?,?)");
- callStmt.setString(1, "pro"); //向第一个占位符参数,赋值nam=‘pro‘
- callStmt.setInt(2, 100); //向第二个占位符,赋值为n=100
- callStmt.execute(); //执行sql语句
- }catch(SQLException e){
- e.printStackTrace();
- }
- //5.释放JDBC资源
- if(callStmt!=null) //关闭声明
- {
- try{
- callStmt.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- if(conn!=null) //关闭连接
- {
- try{
- conn.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- }
- }
(2)添加需要处理的SQL语句,最后调用Connection对象的commit方法提交事物,使SQL语句生效。
Statement stmt=conn.createStatement();
stmt.addBatch("insert into test(name,age,score) values(‘haha‘,10,33)");
stmt.executeBatch(); //批量执行SQL语句
conn.commit(); //提交事物
conn.setAutoCommit(true);
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class JDBC_Transaction {
- /*MySQL数据库编程
- * 实例(7):JDBC批量处理事物Transaction*/
- public static void main(String[] args) {
- //0.连接数据库相关参数
- String url="jdbc:mysql://localhost:3306/jdbc_test_db"; //数据库URL(资源定位唯一标识符)
- String DBusername="root"; //数据库用户名
- String DBpasswd="896013"; //数据库密码
- //1.加载数据库驱动,将Driver注册到DriverManager中
- try{
- Class.forName("com.mysql.jdbc.Driver");
- }catch(ClassNotFoundException e){
- e.printStackTrace();
- }
- //2.通过数据库URL连接到数据库
- Connection conn=null;
- Statement stmt=null;
- try{
- //3.获得表示连接到数据库的Connection对象
- conn=DriverManager.getConnection(url, DBusername, DBpasswd);
- //4.设置SQL语句不自动执行
- conn.setAutoCommit(false);
- //5.获取Statement对象
- stmt=conn.createStatement();
- stmt.addBatch("insert into test(name,age,score) values(‘haha‘,10,33)");
- stmt.addBatch("insert into test(name,age,score) values(‘heihei‘,11,44)");
- stmt.addBatch("insert into test(name,age,score) values(‘xixi‘,14,55)");
- stmt.executeBatch(); //批量执行SQL语句
- conn.commit(); //提交事物
- conn.setAutoCommit(true);
- }catch(SQLException e){
- e.printStackTrace();
- }
- //5.释放JDBC资源
- if(stmt!=null) //关闭声明
- {
- try{
- stmt.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- if(conn!=null) //关闭连接
- {
- try{
- conn.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- }
- }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。