SpringJDBC

1.使用传统JDBC

使用步骤: 6 大步骤!
1. 注册数据库驱动
        导入数据库驱动的依赖
        新版数据库驱动可以自动注册,可以忽略这步
        Class.forName(驱动类名 )
2. 连接到数据库
        需要 3 个参数 url username password
3. 创建 Statement (语句)对象
4. 执行 SQL 语句( CRUD
5. 处理 SQL 语句的结果
6. 关闭数据库连接
        Java 7 以后可以利用 , try catch 的自动关闭功能,自动关闭连接
示例代码如下:
public class StudentDaoJdbcImpl implements StudentDao {

    @Autowired
    DataSource dataSource;

    @Override
    public int saveStudent(Student student) {

        //2. 创建连接
        try (Connection connection = dataSource.getConnection()){
            //1. 注册数据库驱动, 自动完成
            Class.forName("com.mysql.jdbc.Driver");
            String sql = "INSERT INTO student (id, name, birth_date) VALUE (null, ?, ?)";
            //3. 创建 Statement对象
            PreparedStatement preparedStatement = connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
            preparedStatement.setString(1, student.getName());
            preparedStatement.setDate(2, Date.valueOf(student.getBirthDate()));
            //4. 执行SQL语句
            int n = preparedStatement.executeUpdate();

            //5 处理SQL结果
            //获取自动生成的ID
            ResultSet resultSet = preparedStatement.getGeneratedKeys();
            while (resultSet.next()){
                //为Student 设置刚刚生成的ID
                student.setId(resultSet.getInt(1));
            }
            return n;
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        //6. 关闭数据库连接, 采用Java 7的自动关闭功能
    }

2.传统JDBC的不足:

        1.代码中的冗余重复
        2.代码繁琐易错
        3.每次都要处理异常

3.什么是Spring JDBC

        Spring JDBC 是对 JDBC 的轻量封装,解决了传统 JDBC 冗余,易错,以及异常处理的问题。
采用模板设计模式,将 JDBC 通用代码进行封装, 提供一个简洁使用方式: JdbcTemplate

4.Spring JDBC什么时候用

        Spring JDBC 是 Spring 提供的持久层解决方案, 轻量化封装,简化了 JDBC 的操作,又提供非常优秀的性
能,适用于小的轻量级的项目

5.比较MyBatis Spring JDBC

        MyBatis -- 大部分项目都用 MyBatis
MyBatis 是重量级的框架(相对于 Spring JDBC ),内部用到了反射和动态代理,执行效率没
Spring JDBC
        MyBatis封装更加彻底,几乎 JDBC” 编码,用起来非常方便Spring JDBC -- 适用于小的轻量级的项目是轻量级的框架,实际上就是对传统JDBC的简单封装,提供了对异常的处理,执行效率和传统JDBC 一样,非常轻快
        Nacos底层使用了 Spring JDBC

6.使用Spring JDBC的步骤:

1. Spring Boot 项目中导入相关依赖
<!-- mysql驱动依赖 --> 
<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> 
</dependency> 
<!-- spring-jdbc依赖 --> 
<dependency> <groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-jdbc</artifactId> 
</dependency>
2. 在属性 application.yml 文件配置数据源信息
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/spring_test?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
    username: root
    password: root

关于spring-boot-starter-jdbc自动配置

        如果依赖了spring-boot-starter-jdbc JDBC 驱动, Spring Boot 就会自动创建数据库连接池
HikariDataSource添加依赖spring-boot-starter-jdbc 后,必须在应用属性文件 application.yml 中配置 datasource 参数,如果没有datasource 配置,则启动出现异常!如果配置了自定义的DataSource 类型的 Bean 对象,则 Spring Boot 就不再创建 HikariDataSource
对象,这样就实现了自定义 DataSource 配置

JdbcTemplate的使用

        导入spring-boot-starter-jdbc 依赖后, Spring Boot 会自动创建 jdbcTemplate Bean ,使用时候注入即可:
测试从 JdbcTemplate 中获取连接对象,看是否获取成功,若能获取成功连接对象,则该模板类可以使用

模板类 -- JdbcTemplate

JdbcTemplate 的优势:
        消除重复的模板代码减轻引起错误的常见原因
正确处理 SQLExceptions
在不牺牲性能的情况下
提供对标准 JDBC 结构的完全访问
JdbcTemplate 封装的操作有哪些?
1. 获取连接
2. 执行 SQL
3. 参与事务
4. 处理结果集
5. 处理异常
6. 释放连接
        总之:程序员只需要调用该类中的方法即可完成相对应的操作,不用再写模板代码,不用考虑模板代码中的异常处理,操作方便了很多。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon_coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值