为了账号安全,请及时绑定邮箱和手机立即绑定

JDBC之“对岸的女孩走过来”

难度初级
时长 1小时13分
学习人数
综合评分9.57
120人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • dbcp数据库连接池:

    1. 导入相关的jar包

    2. 在项目的根目录下新建一个配置文件dbcp.properties,需要配置的属性如下图

    https://img1.sycdn.imooc.com//5b1361f00001880212070743.jpg


    查看全部
  • jdbc事务操作: 1.connection.setAutoCommit(false)关闭自动提交 2.把对数据库的操作加入try catch块 3.如果中间报错,则在catch块中因connection.rollback()回滚(在程序中可用connection.setSavepoint()设置保存点,rollback()也可以接受Savepoint参数,返回到指定保存点位置 ) 4.正常执行则在try块末尾用connection.commit()手动提交

    查看全部
  • JDBC对事务管理的支持 1、我们通过提交commit()或是回退rollback()来管理事务的操作 2、事务操作默认是自动提交 3、可以通过setAutoCommit(false)来禁止自动提交

    查看全部
  • 事务的特点

    1. 原子性:事务是一个完整的操作

    2. 一致性:当事务完成时,事务必须处于一致状态

    3. 隔离性:对数据的=进行修改的所有并发事务都是彼此隔离的,类似于java中的同步原理。

    4. 永久性:事务完成之后,对数据库的修改永久保持,一次性交易,概不退换。


    查看全部
  • @JDBC---带输出参数的存储过程

    存储过程的代码:

    CREATE PROCEDURE `sp_select_count`(OUT count INT(10))
    BEGIN  
    SELECT COUNT(*) INTO count FROM user1; 
    END

    调用过程:

    //1.获取连接
    Connection c = DBHelper.getConnection();
    //2.获得CallableStatement
    CallableStatement cs = c.PrepareCall("call sp_select_count(?)");
    cs.registerOutParameter(1,Types.INTEGER); 
    //3.执行存储过程
    cs.execute();
    //4.处理结果集
    cs.getInt(1);



    查看全部
  • @JDBC---带输入参数的存储过程

    存储过程的代码:

    CREATE PROCEDURE `sp_select_nofilter`(IN sp_name VARCHAR(20))
    BEGIN
      IF sp_name IS NULL OR sp_name = '' THEN
      SELECT * FROM user1;
     ELSE
      IF LENGTH(sp_name)=11 AND SUBSTRING(sp_name,1,1)=1 THEN
       SELECT * FROM user1 WHERE user_naem=sp_name;
      ELSE
       SELECT *FROM user1 WHERE user_name LIKE CONCAT('%',sp_name,'%');
      END IF;
     END IF;
    END

    调用过程:

    //1.获取连接
    Connection c = DBHelper.getConnection();
    //2.获得CallableStatement
    CallableStatement cs = c.PrepareCall("call sp_select_filter(?)");
    cs.setString(1,sp_name); 
    //3.执行存储过程
    cs.execute();
    //4.处理结果集
    ResultSet rs = cs.getResultSet();
    //5.遍历结果集
    while
    (rs.next()){   
    rs.getString(...);   
    ...
    }



    查看全部
  • @JDBC---调用无参存储过程

    存储过程的代码:

    CREATE PROCEDURE db_name.sp_name()
    BEGIN
    select * FROM table_name;
    END

    调用过程:

    //1.获取连接
    Connection c = DBHelper.getConnection(); 
    //2.获得CallableStatement
    CallableStatement cs = c.PrepareCall(
    "call sp_select()"
    ); 
    //3.执行存储过程
    cs.execute();
    //4.处理结果集
    ResultSet rs = cs.getResultSet();
    //5.遍历结果集
    while
    (rs.next()){    
    rs.getString(...);   
    ...
    }



    查看全部
  • 1. Statement、PreparedStatement和CallableStatement都是接口(interface)。 2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自PreparedStatement。 3. Statement接口提供了执行语句和获取结果的基本方法;    PreparedStatement接口添加了处理 IN 参数的方法;    CallableStatement接口添加了处理 OUT 参数的方法。 4. a. Statement:    普通的不带参的查询SQL;支持批量更新,批量删除;     b. PreparedStatement:      可变参数的SQL,编译一次,执行多次,效率高;      安全性好,有效防止Sql注入等问题;      支持批量更新,批量删除;     c. CallableStatement:   继承自PreparedStatement,支持带参数的SQL操作;   支持调用存储过程,提供了对输出和输入/输出参数(INOUT)的支持; Statement每次执行sql语句,数据库都要执行sql语句的编译 ,最好用于仅执行一次查询并返回结果的情形时,效率高于PreparedStatement。 PreparedStatement是预编译的,使用PreparedStatement有几个好处 1. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。 2. 安全性好,有效防止Sql注入等问题。 3.  对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch; 4.  代码的可读性和可维护性。

    查看全部
    0 采集 收起 来源:课程简介

    2019-01-19

  • mybatis课程

    查看全部
    0 采集 收起 来源:myBatis简介

    2018-12-24

  • mybatis的特点

    查看全部
    0 采集 收起 来源:myBatis简介

    2018-12-24

  • hibernate的相关课程

    查看全部
    0 采集 收起 来源:Hibernate简介

    2018-12-24

  • jdbc与替代产品的优缺点

    查看全部
    0 采集 收起 来源:Hibernate简介

    2018-12-24

  • PreparedStatements  预编译的处理

    查看全部
    0 采集 收起 来源:小结

    2018-12-24

  • Isolation Durability

    查看全部
  •   原子性  一致性

    查看全部

举报

0/150
提交
取消
课程须知
本课程是JDBC的进阶课程,如果小伙伴们对数据库知识以及JDBC简单操作不太熟悉,建议先去《JDBC之“对岸的女孩看过来”》以及《与MySQL的零距离接触》修炼修炼!!
老师告诉你能学到什么?
1、JDBC调用存储过程,事务管理 2、JDBC的高级应用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!