博客
关于我
Spring中jdbcTemplate实现增删改查操作
阅读量:92 次
发布时间:2019-02-26

本文共 3375 字,大约阅读时间需要 11 分钟。

Spring框架与JdbcTemplate实践指南

Spring框架概述

Spring是一个一站式应用开发框架,旨在简化Java开发中的配置管理和依赖注入。它遵循工厂模式,通过分层结构为应用程序提供支持。Spring框架主要包括以下几个核心模块:

  • 数据访问与业务逻辑:通过 JDBC 与数据库交互,提供数据访问的基础支持。
  • 数据处理:对数据库操作进行封装,使代码更加简洁高效。
  • 数据转换与格式化:支持数据的转换与格式化,提升应用的灵活性。
  • JDBC与JdbcTemplate的关系

    JdbcTemplate是Spring框架提供的一个强大工具,它通过对 JDBC进行封装,使得代码更加简洁高效。以下是JdbcTemplate与JDBC的主要区别:

  • 简化 JDBC 操作:JdbcTemplate对 JDBC 的底层操作进行封装,使开发者无需直接操作Statement和ResultSet对象。
  • 事务管理:支持自动化事务管理,简化事务处理逻辑。
  • 行映射器:提供RowMapper接口,支持自定义如何将结果集映射为对象。
  • JdbcTemplate的使用步骤

    1. 导入必要的JAR包

    使用JdbcTemplate前,需要导入以下JAR包:

  • Spring核心包
  • JdbcTemplate包
  • 数据库驱动包(如MySQL驱动)
  • 2. 新建数据库

    在开发环境中,首先需要创建一个新的数据库,并设置以下参数:

  • 数据库名称:可以命名为spring
  • 数据库字符集:设置为utf8
  • 用户名:root
  • 密码:留空
  • 创建完成后,需要在数据库中创建一个用户表,字段包括idusernamepassword

    3. JDBC 操作的基本示例

    以下是一个简单的JDBC操作示例,使用JdbcTemplate进行增删改查:

    public class JdbcTemplateDemo1 {    @Test    public void saveUser() {        // 1. 创建数据源        DriverManagerDataSource dataSource = new DriverManagerDataSource();        dataSource.setDriverClassName("com.mysql.jdbc.Driver");        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/spring?useUnicode=true&characterEncoding=utf8");        dataSource.setUsername("root");        dataSource.setPassword("");        // 2. 创建JdbcTemplate对象        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);        // 3. 执行数据库操作        String sql = "insert into user values(?,?,?)";        int rows = jdbcTemplate.update(sql, 1, "刘言曌", "123456");        System.out.println("插入结果:" + rows);    }    // 更新操作    @Test    public void updateUser() {        // 同上,跳转至更新操作示例    }    // 删除操作    @Test    public void removeUser() {        // 同上,跳转至删除操作示例    }}

    4. 查询操作

    JdbcTemplate支持三种类型的查询:

  • 查询记录总数:使用queryForObject方法,返回一个整数。
  • 查询单个记录:使用queryForObject与RowMapper接口结合,返回一个对象。
  • 查询多个记录:使用queryForList方法,返回一个集合。
  • 以下是一个查询单个记录的示例:

    public class JdbcTemplateDemo1 {    @Test    public void getUser() {        // 同上,跳转至查询操作示例    }}

    5. 原生JDBC与JdbcTemplate对比

    以下是一个使用原生JDBC进行查询的示例:

    public class JdbcTemplateDemo1 {    @Test    public void getUserByJDBC() throws SQLException {        // 加载驱动        try {            Class.forName("com.mysql.jdbc.Driver");            Connection conn = DriverManager.getConnection(                "jdbc:mysql://127.0.0.1:3306/spring?useUnicode=true&characterEncoding=utf8",                "root",                ""            );            // 预编译SQL语句            PreparedStatement ptmt = conn.prepareStatement(                "select * from user where username = ?"            );            ptmt.setString(1, "刘言曌");            // 执行查询            ResultSet rs = ptmt.executeQuery();            // 遍历结果集            while (rs.next()) {                int id = rs.getInt("id");                String username = rs.getString("username");                String password = rs.getString("password");                User user = new User();                user.setId(id);                user.setUsername(username);                user.setPassword(password);                System.out.println(user);            }            // 关闭资源            rs.close();            ptmt.close();            conn.close();        } catch (ClassNotFoundException | SQLException e) {            e.printStackTrace();        } finally {            // 关闭连接        }    }}

    补充说明

  • 事务管理:JdbcTemplate支持事务管理,开发者可以通过commitrollback方法控制事务。
  • 参数化查询:通过SqlParameterSource接口,支持参数化查询,提升安全性和灵活性。
  • RowMapper接口:允许开发者自定义如何将结果集映射为对象,提升代码的可定制性。
  • 通过合理使用JdbcTemplate,开发者可以显著简化数据库操作,提高开发效率。

    转载地址:http://mvuu.baihongyu.com/

    你可能感兴趣的文章
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 的 Buffer 详解
    查看>>
    nodejs 读取xlsx文件内容
    查看>>
    nodejs 运行CMD命令
    查看>>
    nodejs+nginx获取真实ip
    查看>>
    nodejs-mime类型
    查看>>
    NodeJs——(11)控制权转移next
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    nodejs与javascript中的aes加密
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    Nodejs中的fs模块的使用
    查看>>
    nodejs包管理工具对比:npm、Yarn、cnpm、npx
    查看>>
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    nodejs字符与字节之间的转换
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    NodeJs学习笔记002--npm常用命令详解
    查看>>