Java数据库连接

什么是jdbc:

JDBC(Java DataBase Connectivity)就是Java数据库连接

JDBC中的核心类

核心类有:DriverManager、Connection、Statement,和ResultSet!

DriverManager(驱动管理者)


    1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;
     2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。
  

  Connection(数据库连接对象)  

    
     1.Connection最为重要的一个方法就是用来获取Statement对象

  Statement(SQL执行对象)


     作用:
     1.向数据库发送SQL
     2.执行SQL,并且获取执行结果
     核心方法:
     1. void executeUpdate(String sql):执行更新操作(insert、update、delete等);
     2. ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

  ResultSet(结果集对象)


     将查询结果封装到Resultset结果集中。结果集是一个二维的表格,有行有列。
     核心方法:
     1. boolean next():使“行光标”移动到下一行,并返回移动后的行是否存在;
     2. XXX getXXX(int col):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。
     3. XXX getXXX(String colName):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。
        

PreparedStatement和CallableStatement

PrepareStatement: 是Statement子类

  -作用:
  目的:解决SQL注入,防止SQL攻击
  1.预编译SQL语句,后期再注入SQL参数
  2.发送SQL语句
  3.执行SQL语句

  -CallableStatement:是Statement子类
  -区别:支持存储过程的执行和调用
              执行效率差别


    怎么使用JDBC?


      1.导入mysql-connector-java-5.1.47.jar到项目中。
      2.加载mysql驱动

*连接池


 c3p0连接池的使用:
 1.导入c3p0连接池的依赖.jar
 2.在src目录下新建c3p0-config.xml文件
 3.创建连接池对象
   ComboPooledDataSource ds = new ComboPooledDataSource("mysql");
 4.获取连接对象
   Connection con = ds.getConnection();
 5.归还连接对象
   con.close()


*dbutils工具类


  1.导入dbutils包
  2.创建工具类对象
  ComboPooledDataSource ds = new ComboPooledDataSource("mysql");
  QueryRunner qr = new QueryRunner(qr);

  3.封装的方法
  增删改方法: update(String sql,Object...params);
  查询方法query(String sql,ResultSetHandler rs,object...params);

  4.ResultSetHandler
  ResultSetHandler实现类
  ①ArrayHandler:把结果集中的第一行数据转成对象数组。
  ②ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
  ③BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
  ④BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
  ⑤MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
  ⑥MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
  ⑦ColumnListHandler:将结果集中某一列的数据存放到List中。
  ⑧KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List<Map>),再把这些map再存到一个map里,其key为指定的列。
  ⑨ScalarHandler:获取结果集中第一行数据指定列的值,常用来进行单值查询


*事务


  什么是事务?
  事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作
  事务是一个不可分割的工作逻辑单元

  事务四大特性:
  事务必须具备以下四个属性,简称ACID 属性
  -原子性(Atomicity)
  -一致性(Consistency)
  -隔离性(Isolation)
  -持久性(Durability)

注意:Dao层不能处理异常,Connection对象为同一个。

           

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值