传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[学习交流] 成都校区

© 唐磊TL 初级黑马   /  2019-1-9 18:37  /  75 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

JDBC快速入门
步骤:
1.导入驱动jar包
2.注册驱动
3.获取数据库对象 connection
4.定义sql
5.获取执行sql语句的对象  statement
6.执行sql,接收返回结果
7.处理结果
8.释放资源

Drivermanager 驱动管理对象
功能:
                1.注册驱动
告诉程序该使用哪一个数据库驱动jar
2.获取数据库连接
            DriverManager.getConnection()
参数:
1.指定连接的路径
语法:jdbc:MySQL://ip:端口号/数据库名称
      Jdbc:mysql://localhost:3306/
2.用户名
3.密码
Connection 数据库连接对象
功能:
                1.  获取执行sql的对象
2.管理事务
Statement 执行sql对象
Int executeUpdate 返回影响的行数(可以通过返回值,判断dml语句是否执行成功)
Resultset Executequery:执行dql(select)语句

Resultset 结果集对象
Next();方法游标从当前位子移动一行
Getxxx(参数);获取数据
xxx:数据类型 如:getint(); getstring();
参数:1.int:代表列的编号 从1开始的
2.string:字符串,列名称
Preparedstatement 执行sql对象


JDBC工具类
1.注册驱动抽取
2.抽取一个方法获取连接对象
需求:不想传递参数,还得保证工具类的通用性
配置文件:
3.抽取一个方法释放资源

Preparestatement:执行sql对象
后期都会用此对象来完成增删改查的所有操作




JDBC连接池
1.概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
2. 好处:
                1. 节约资源
                2. 用户访问高效,

3. 实现:
                1. 标准接口:DataSource   javax.sql包下的
                        1. 方法:
                                * 获取连接:getConnection()
                                * 归还连接:Connection.close()。如果连接对象Connection是
                                从连接池中获取的,那么调用Connection.close()方法,则不会
                                再关闭连接了。而是归还连接

                2. 一般我们不去实现它,有数据库厂商来实现
                        1. C3P0:数据库连接池技术
                        2. Druid:数据库连接池实现技术,由阿里巴巴提供的


C3p0基本使用:
        步骤:
1.导入jar包(两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,
                不要忘记导入数据库驱动jar包
2. 定义配置文件:
                名称: c3p0.properties 或者 c3p0-config.xml
                路径:直接将文件放在src目录下即可。

3. 创建核心对象 数据库连接池对象 ComboPooledDataSource()
4. 获取连接: getConnection

* 代码:
                         //1.创建数据库连接池对象
                DataSource ds  = new ComboPooledDataSource();
                //2. 获取连接对象
                Connection conn = ds.getConnection();


Druid:数据库连接池技术,阿里巴巴提供
步骤:
                1. 步骤:
                        1. 导入jar包 druid-1.0.9.jar
                        2. 定义配置文件:
                                * 是properties形式的
                                * 可以叫任意名称,可以放在任意目录下(手动加载)
                        3. 加载配置文件。Properties
                        4. 获取数据库连接池对象:通过工厂类来获取  DruidDataSourceFactory
                        5. 获取连接:getConnection


        基本使用代码:
                         //3.加载配置文件
             Properties pro = new Properties();
Inputstream is=DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
                pro.load(is);
                //4.获取连接池对象
                DataSource ds = DruidDataSourceFactory.createDataSource(pro);
                //5.获取连接
                Connection conn = ds.getConnection();


Druid工具类
定义工具类
                        1. 定义一个类 JDBCUtils
                        2. 提供静态代码块加载配置文件,初始化连接池对象
                        3. 提供方法
                                1. 获取连接方法:通过数据库连接池获取连接
                                2. 释放资源
                                3. 获取连接池的方法
JDBCTemplate介绍

Spring框架对JDBC的简单封装。提供了JDBCTemplate对象对JDBC简化
步骤:
                1. 导入jar包
                2. 创建JdbcTemplate对象。依赖于数据源DataSource
                        * JdbcTemplate template = new JdbcTemplate(ds);

                3. 调用JdbcTemplate的方法来完成CRUD的操作
                        * update():执行DML语句。增、删、改语句
                        * queryForMap():查询结果将结果集封装为map集合,将列名作为key,将                                        值作为value 将这条记录封装为一个map集合
                                * 注意:这个方法查询的结果集长度只能是1
                        * queryForList():查询结果将结果集封装为list集合
                                * 注意:将每一条记录封装为一个Map集合,再将Map集合装载到                                        List集合中
                        * query():查询结果,将结果封装为JavaBean对象
                                * query的参数:RowMapper
                                        * 一般我们使用BeanPropertyRowMapper实现类。可以完成数                                                据到JavaBean的自动封装
                                        * new BeanPropertyRowMapper<类型>(类型.class)
                        * queryForObject:查询结果,将结果封装为对象
                                * 一般用于聚合函数的查询
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马