jdbc

JDBC

概念:java语言操作数据库。本质:定义了操作所有关系型数据库的规则(接口)。各个数据库厂商去实现接口,提供数据库驱动jar包。我们可以使用这套接口编程,真正执行的代码时驱动jar包中的实现类。

快速入门:

  1.导入驱动jar包

    复制到libs下,右键libs,add as library

  2.注册驱动

  3.获取数据库连接对象 Connection

  4.定义sql

  5.获取执行sql语句的对象 Statement

  6.执行sql 

  7.处理结果

  8.释放资源

详解各个对象

  1.DriverManager:驱动管理对象

    注册驱动:Class.forName("com.mysql.cj.jdbc.Driver");//可省略

    获取数据库连接:

      URL:jdbc:mysql://localhost:3306/soccer?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false

      user:用户名

      password:密码

  2.Connection:数据库连接对象

    Connection con = DriverManager.getConnection(url,user,password);

    管理事务:

      开启事务:setAutoCommit();

      提交事务:commit();

      回滚:rollback();

  3.Statement:执行Sql的对象

    boolean execute(String sql); 可执行任意sql语句

    int executeUpdate(String sql); 执行DML,DDL。返回值:影响的行数

    ResultSet executeQuery(String sql); 执行DQL语句

  4.ResultSet:结果集对象,封装查询结果

    next();  //加判断是否为最后一行

    getxxx();  //xxx代表数据类型  如:getInt();  getString();

    参数:int 代表列的编号,从1开始; 如:getString(1);

         String 代表列名,如:getString("name");

    注意:使用步骤:

      游标向下移动,判断是否有数据,获取数据

  5.PreparedStatement:执行Sql的对象

    SQL注入问题:

    1.输入用户随便。

    2.拼接sql时有一些sql特殊关键字参与。

  预编译的sql用?作为占位符

抽取jdbc工具类:JDBCUtils

  抽取注册驱动

  抽取获取连接对象

    通过配置文件解决:jdbc.properties

              url=

              user=

              password=

  抽取方法释放资源

JDBC控制事务

数据库连接池

概念:其实是一个容器(集合),存放数据库连接的容器。

  当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问之后,会将连接对象归还容器。

优势:访问高效,节约资源

实现:

  1.标准接口:DataSource

    获取连接:getConnection();

    归还连接:Connection.close();

  2.由数据库厂商来实现

    1.C3P0

    2.Druid

C3P0连接池技术

Druid连接池技术

  1.导入jar包

  2.配置文件:

    是properties形式

  3.获取数据库连接池对象:通过工厂类来获取 DruidDataSourceFactory

  4.获取连接:getConnection();

定义工具类,提供静态代码块加载配置文件,初始化连接池对象,通过数据库连接池获取连接,释放资源,获取连接池的方法。

Spring JDBC

Spring框架提供的JDBC封装。提供了一个JDBCTemplate对象简化JDBC的开发。

  1.导入jar包

  2.创建jdbcTemplate对象。依赖于数据源DataSource

  3.调用JDBCTemplate的方法完成crud操作

    update();  执行DML语句,增删改

    queryForMap();  查询结果封装为map集合

    queryForList();  查询结果封装为list集合

    query();  查询结果封装为JavaBean对象

    queryForObject();  查询结果封装为对象

posted @ 2022-02-17 15:27  悠闲的黑猪  阅读(62)  评论(0)    收藏  举报