JDBC(12.11)

目录

什么是JDBC?

如何使用JDBC


什么是JDBC?

JDBC就是通过java对数据库建立连接

JDBC的核心类:

 DriverManager(驱动管理者)
     1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;
     2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。
 
  Connection(数据库连接对象)       
   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。

如何使用JDBC

1.将对应版本的驱动包放入项目的lib目录下,然后将驱动包载入到项目中

2.加载驱动(通过Class类的forname方法通知系统加载对应驱动)

Class.forName("com.mysql.cj.jdbc.Driver");

3.获取连接

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/wte?useUnicode=true&characterEncoding=utf8&useSSL=false", "root", "root");
            

连接的组成分为三部分:

url:

jdbc:mysql:这是URL的固定前缀

localhost:3306:这是主机和端口号

wte:是数据库的名称

useUnicode=true&characterEncoding=utf8&useSSL=false:这是字符集,编码,加密的设置

user:账号

password:密码

4.创建执行对象并且执行sql语句(下例是执行DML语句的例子)

Statement statement = connection.createStatement();
String sql = "DELETE from `emp` where `empno`='"+ emp.getEmpno()+"'";
statement.executeUpdate(sql);
连接池

    作用:避免频繁地创建和销毁连接
    C3P0连接池使用步骤
        导入dbutils.jar包
        在src目录下新建c3p0-config.xml文件,在文件中写入配置
        创建工具类对象:public static ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("mysql");
        获取连接对象: Connection con = comboPooledDataSource.getConnection
        归还连接对象: con.close()

dbUtil

    JDBC的工具类,封装了对数据库操作的方法
    使用方法:
        1.导入dbutils.jar包
        2.创建工具类对象

  ComboPooledDataSource ds = new ComboPooledDataSource("mysql");
  QueryRunner qr = new QueryRunner(qr);

主要方法:

查询:update(String sql,Object...params);

修改:query(String sql,ResultSetHandler rs,object...params);

resulthandler

作用:用于在关闭连接前处理结果集

实现类:

  ①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:获取结果集中第一行数据指定列的值,常用来进行单值查询

事务

    四大特性(ACID)
        原子性
            事务是一个完整的操作,各个步骤都不可分,要么都执行,要么都不执行
        一致性
            当事务完成时,数据必须一致
        隔离性
            并发的事务之间彼此隔离,不依赖或影响其他事务
        持久性
            事务完成后对数据库的修改是永久的

    构成
        开始:Begin
        主体
        结束:Commit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值