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

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

难度初级
时长 1小时13分
学习人数
综合评分9.57
120人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • @JDBC---替代品之myBatis

    MyBatis:支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
    特点:
        1:易于上手和掌握。
        2:SQL卸载XML里,便于统一管理和优化。
        3:解除SQL与程序代码的耦合。
        4:提供映射标签,支持对象与数据库的orm字段关系映射。
        5:提供对象关系映射标签,支持对象关系组建维护。
        6:提供XML标签,支持编写动态SQL。

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

    2018-05-28

  • @JDBC---替代品之DBUtils

    核心接口:

    1.DbUtils:提供如关闭连接,装载JDBC驱动程序等常规工作的工具类;
    2.QueryRunner:该类简化了SQL查询,它常与ResultSetHandler组合在一起使用
    3.ResultSetHandler:执行处理一个java.sql.ResultSet,将数据转变并处理为任何一种形式,这样有益于其应用而且使用起来更容易。  

    实例1:

    final String SQL = "INSERT INTO test_1 VALUES(?,?)";
    int result = new QuertRunner().update(conn,SQL,new Object[]{"John","123"});

    实例2:

    final String SQL = "SELECT * FROM test_1";
    Test_1Bean testBean = new QuertRunner().quert(conn,SQL,new HeanHandler(Test_lBean.class));


    查看全部
  • @JDBC---连接池dbcp与c3p0总结

    jar包、配置文件、获取连接。

    dbcp是Spring推荐,c3p0是Hibernate推荐。

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

    2018-05-28

  • @JDBC---数据库连接池之C3P0
    1.导入相关C3P0的jar包

        c3p0-0.9.2-pre4.jar
        mchange-commons-java-0.2.2.jar
    2.在项目根目录下添加配置文件c3p0.properties

    c3p0.driverClassName="com.mysql.jdnc.Driver"
    c3p0.url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8"
    c3p0.username="root"
    c3p0.password="root"

    3.编写类文件,创建连接池

    public class C3P0Util{
         private static ComboPooledDataSource ds = new ComboPooledDataSource();
         public static Connection getConnection(){
             try{
                 return ds.getConnection();
             }catch(SQLException e){
                 throw new RuntimeException(e);
             }
         }
    }
    查看全部
  • @JDBC---数据库连接池之dbcp

    1.导入相关dbcp的jar包
        commons-dpcp2-2.1.1.jar
        commons-pool2-2.4.2.jar
        commons-logging-1.2.jar

    2.在项目根目录下添加配置文件dbcp.properties
        主要配置信息

    driverClassName="com.mysql.jdnc.Driver"
    url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8"
    username="root"
    password="root"

    3.实现dbcp连接池

    public class DBCPUtil{
         //数据源,static
         private static DataSource DS; 
         //配置文件位置 
         private static final String configFile = "/dbcp.properties"; 
         //默认构造函数 
         public DBCPUtil(){  
             initDbcp(); 
         } 
         //初始化DS 
         private static void initDbcp(){  
             Properties pops = new Properties();  
             try{   
                 //以流形式读取配置文件   
                 props.load(Object.class.getResourceAsStream(configFile));
                 //创建数据源 
                 DS = BasicDataSourceFactory.createDataSource(pops); 
             }catch(Exception e){   
                 e.printStackTrace();  
             } 
         } 
     
         //连接数据库    
         public Connection getConn(){     
             Connection con=null;     
             if(DS!=null){      
                  try{       
                      //获取连接     
                      con=DS.getConnection();
                  }catch(Exception e){       
                      e.printStackTrace(System.err);      
                  }      
                  try{       
                      //设置成手动提交事务
                      con.setAutoCommit(false);     
                  }catch(SQLException e){      
                      e.printStackTrace(System.err);   
                  }     
             }     
             return con;   
         }
    }


    查看全部
  • @JDBC---实现事务管理

    事务特点:

        1.原子性:事务是一个完整的操作。
        2.一致性:当事务完成时,数据必须处于一致的状态。
        3.隔离性:对数据进行修改的所有并发事务必须是隔离的。【不可以同时操作一条数据
        4.永久性:事务完成后吗,数据库的修改必须是永久保持的。

    事务管理:

        1.我们通过提交commit()或是回退rollback()来管理事务的操作。
        2.事务操作默认是自动提交
        3.可以通过setAutoCommit(false)来禁止自动提交。

    调用过程:

        1.conn.setAutoCommit(false);//jdbc默认自动提交;
        2.try...catch语句包含执行业务逻辑,完成后conn.commit();
        3.在catch中,加上回滚语句:conn.rollback();

    查看全部
  • @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(...);
        ...
    }
    查看全部
  • dbcp c3p0

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

    2018-05-02

  • String a = null;的意思是让代码出错,导致数据写入不完整。如果没有进行事务处理,则会导致数据丢失或异常,如果进行了事务处理,则会对执行的操作进行回滚(还原撤销读写操作)。
    事务处理的步骤:
    一、关闭自动提交:conn.setAutoCommit(false);
    二、手动提交事务:conn.commit();
    三、进行事务回滚:conn.rollback;//放置在try-catch语句中

    查看全部
  • JDBC对事物管理的支持


    查看全部
  • 事物的特点!

    查看全部
  • 学习记录:dbcp和c3p0的区别

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

    2018-04-18

  • dpcp 相关jar 包

    commons-dpcp2-2.1.1.jar

    commons-pool2-2.4.2.jar

    commons-logging



    查看全部

举报

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

微信扫码,参与3人拼团

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

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