JDBC调用存储过程,以及存储过程 事务的使用.....

简介: 在JDBC中调用存储过程 首先就要在数据库中存在 要调用的过程  ,存储过程是一组SQL语句的集合,我们吧实现某一功能的 SQL语句集合在一起来使用,方便了用户,不光是这样,存储过程可以预编译,也就是说只要调用了一次存储过程,那么下次在调用存储过程的时候 就不需要进行再次编译了  。

在JDBC中调用存储过程 首先就要在数据库中存在 要调用的过程  ,存储过程是一组SQL语句的集合,我们吧实现某一功能的 SQL语句集合在一起来使用,方便了用户,不光是这样,存储过程可以预编译,也就是说只要调用了一次存储过程,那么下次在调用存储过程的时候 就不需要进行再次编译了  。提高了 数据库访问的效率 。。

在 SQL  SERVER20008  中创建存储过程    语法如下 

      Create   Procedure   过程名字(@parameter1  int ,@parameter2  char(10) .........)    as       <SQL命令> 

     例子: 

    Create  Procedure  a  as  select  *  from  info   //  创建了存储过程 a  表示查询 info表的所有数据     

   

  在 JDBC中调用   方法   。。。

       Connection  c =DriverManager.getConnection("jdbc:odbc:datasoure") ;  //连接数据库 

       CallableStatement  m=c.prepareCalle("call p(?,?)") ;  //创建CallableStatement对象  并传递存储过程调用 的SQL执行语句    ?表示 JDBC存储过程参数的通用格式

      m.setString(1,"one"); 

     m.setString(2."two");  //分别设置第一个参数?和第二个参数?的值 

     然后调用  m.executeUpdate() ;//执行存储过程  

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   在JDBC操作中 我们还记得  Connection的 commit方法 吗?   这个方法 是提交SQL命令 ,默认状态下是自动提交  .也就是说 不用我们 显示的去调用这个方法来提交SQL命 令  。 

   在一般的  SQL  查询 更新删除 等操作的时候 我们不用去设置它的状态,自动提交就行 。但是在事务中,我们不得不用到 commit方法手动提交 ,关于什么事务 下面我详细说   明  .... 

       事务?其实就是几个SQL语句的组合 ,但是这个组合有特性 ,就是他们有原子性?什么是原子性呢 ,就是 事务中的 SQL操作要么都执行 ,要么 一个也不执行 ,这就是事务的概念 ,  什么时候用到事务呢 ,比如说 我们 在处理银行转账服务的同时 是一个账号 扣钱  一个账户加钱, 这两个操作只能同时进行 ,但却不能一个执行而另一个不执行,事务的用处在银行转账得到了很好的体现。。。。。。

 

事务的处理 我们就不能用自动提交模式了 ,

                1、我们需要调用  Connection类的  setAutoCommit(false)方法设置模式为手动提交,设置了这个模式之后我们调用 executeUpdate等方法执行的SQL命令都不会提交

               除非我们显示调用了Connection类的 commit()方法 。

                2、如果在事务处理当中 某一条件不符合的时候 我们就可以调用  Connection类的 rollBack()函数回滚事务  ,取消之前所作的一切事务操作 ,

 

 

 

 

目录
相关文章
|
6月前
|
存储
SQLServer存储过程中事务的创建
SQLServer存储过程中事务的创建
48 0
|
6月前
|
SQL Java 数据库连接
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
135 0
|
4月前
|
SQL 算法 Java
jdbc(ikun)实现事务的开启,提交,回滚代码示例
jdbc(ikun)实现事务的开启,提交,回滚代码示例
|
4月前
|
XML Java 数据库连接
【Spring】JDBC、AOP、事务
【Spring】JDBC、AOP、事务
|
6月前
|
Oracle Java 关系型数据库
22JavaWeb基础 - JDBC事务
22JavaWeb基础 - JDBC事务
27 0
|
9月前
|
SQL Java 关系型数据库
JDBC 事务和批处理 详解(通俗易懂)
JDBC 第四节 事务和批处理详解!
174 0
|
10月前
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(下)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
75 1
|
10月前
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(上)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
109 1
|
10月前
|
SQL Java 数据库连接
|
10月前
|
存储 SQL 关系型数据库
【MySQL速通篇003】MySQL视图,MySQL触发器,MySQL函数,MySQL存储过程(参数分类,存储过程的增删改查等),SQL的动态执行,支持事务的存储过程,pymysql 2
【MySQL速通篇003】MySQL视图,MySQL触发器,MySQL函数,MySQL存储过程(参数分类,存储过程的增删改查等),SQL的动态执行,支持事务的存储过程,pymysql 2
278 0