Spring JDBC(简单了解)

Spring JDBC

  Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发。它是在原生态JDBC上面的一层简单的封装,都提供了一些一用的接口,操纵者不会管理连接的创建、关闭。你只需要实现Spring提供的回调类。

如何产生

  是因为JDBC的操作过程比较烦索,并且操作步骤大多相对固定,所以很多框架都对其进行了封装与优化。其中著名的Spring框架也对JDBC做了简单封装。

特点:

  Spring框架提供了一个JdbcTemplate类简化JDBC的开发,它的特点是:简单、方便,这个技术俗称Spring JDBC技术。

作用:

  • Spring JDBC技术中最为核心的类是JdbcTemplate类。
  • JdbcTemplate类负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多精力投入到编写业务逻辑当中去。

操作流程:

  • 导入jar包

  • 创建JDBCTemplate对象。依赖于数据源DataSource
    jdbcTemplate template = new jdbcTemplate(ds);

  • 调用JDBCTemplate 的方法来完成CRUD的操作

  • JdbcTemplate主要提供以下三种类型的方法

    • executeXxx() : 执行任何SQL语句,对数据库、表进行新建、修改、删除操作
    • updateXxx() : 执行新增、修改、删除等语句
    • queryXxx() : 执行查询相关的语句
  • queryForMap( ):查询结果将结果集封装map集合
    注意:这个方法查询的结果集长度只能是1

  • queryForList( ):查询结果将结果集封装为List集合
    注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中

  • query( ):查询结果,将结果封装为JAVABean对象
    注意:query的参数:RowMapper

  • 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装new BeanPropertyRowMapper<类型>(类型.class)

  • queryForObject( ):查询结果,将结果封装为对象。
    注意:一般用于聚合函数的查询

实施流程:

  • 获取jar包并复制全部导入项目:https://pan.baidu.com/s/1_US7SlifA1YLZMtNp-ijSA 提取码: wv6q
  • 所有jar包-右键-添加到Add As Library下

在这里插入图片描述

  • 封装JDBCUtils工具类-加载配置文件,获取数据源。代码如下:
public class JDBCUtils {

    //定义成员变量DataSource
    private static DataSource ds;
    static {
        try {
            //1.加载配文件
            Properties pro = new Properties();

            //链式编程,通过类加载器来,获取配置文件
            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid-driver.properties"));

            //2.获取DataSource数据源
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*
        获取连接
    */
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }

    /*
        关闭连接
    */
    public static void close(Statement stmt, Connection conn){
        if (stmt!=null){
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

        if (conn!=null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    
    public static void close(ResultSet rs, Statement stmt, Connection conn){

        if (rs!=null){
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

        if (stmt!=null){
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

        if (conn!=null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    /*
        获取连接池
    */
    public static DataSource getDataSource(){
        return ds;
    }
}
  • 主函数代码-执行更新操作-调用工具类来获取配置文件和数据源连接:
    public static void main(String[] args) {
        //1.导入jar包
        //2.创建jdbcTemplate对象,简化了开发的步骤
        JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
        //3.调用方法
        String sql = "update user set username='李四' where id =?";
        int count = template.update(sql,3);

        System.out.println(count);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值