当前位置: 首页 > news >正文

Spring JdbcTemplate详解

文章目录

  • Spring JdbcTemplate详解
    • 一、引言
    • 二、配置JdbcTemplate
      • 1、引入依赖
      • 2、配置数据库连接池
      • 3、配置JdbcTemplate
    • 三、使用JdbcTemplate操作数据库
      • 1、添加数据
      • 2、查询数据
        • 查询某个值
        • 根据条件查询返回某个对象
        • 查询对象集合
    • 四、总结

Spring JdbcTemplate详解

一、引言

在Java开发中,数据库操作是常见的需求。JDBC作为Java连接数据库的标准接口,虽然功能强大,但代码繁琐且容易出错。Spring框架通过JdbcTemplateJDBC进行了封装,简化了数据库操作,提高了开发效率。本文将详细介绍Spring JdbcTemplate的使用,包括配置、基本操作和示例代码。

二、配置JdbcTemplate

1、引入依赖

Spring项目中使用JdbcTemplate,首先需要引入相关依赖。以下是Maven依赖配置:

<dependencies><!-- Spring Context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.16</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version></dependency><!-- Spring JDBC --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.16</version></dependency><!-- Druid Connection Pool --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.9</version></dependency>
</dependencies>

2、配置数据库连接池

使用Druid作为数据库连接池,配置jdbc.properties文件:

url=jdbc:mysql://localhost:3306/your_database?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
username=root
password=your_password
driver-class-name=com.mysql.cj.jdbc.Driver

Spring配置文件中引入jdbc.properties并配置Druid数据源:

<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/><property name="driverClassName" value="${driver-class-name}"/>
</bean>

3、配置JdbcTemplate

Spring配置文件中配置JdbcTemplate对象,并注入DataSource

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/>
</bean>

三、使用JdbcTemplate操作数据库

1、添加数据

创建Man实体类,并在Dao接口中定义添加方法:

public interface ManDao {int addEntity(Man man);
}

实现Dao接口,并使用JdbcTemplate添加数据:

@Repository
public class ManDaoImpl implements ManDao {@Autowiredprivate JdbcTemplate jdbcTemplate;@Overridepublic int addEntity(Man man) {String sql = "insert into t_man(user_name, sex) values(?,?)";return jdbcTemplate.update(sql, man.getUserName(), man.getSex());}
}

2、查询数据

查询某个值

Dao接口中定义查询方法,并在实现类中使用JdbcTemplate查询:

public interface ManDao {String getNameByUserId(int id);
}@Override
public String getNameByUserId(int id) {String sql = "select user_name from t_man where uid = ?";return jdbcTemplate.queryForObject(sql, String.class, id);
}
根据条件查询返回某个对象

Dao接口中定义查询方法,并使用BeanPropertyRowMapper返回对象:

public interface ManDao {Man getEntityById(int id);
}@Override
public Man getEntityById(int id) {String sql = "select uid, user_name userName, sex from t_man where uid = ?";return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Man>(Man.class), id);
}
查询对象集合

定义查询所有数据的方法:

public interface ManDao {List<Man> findAll();
}@Override
public List<Man> findAll() {String sql = "select uid, user_name userName, sex from t_man";return jdbcTemplate.query(sql, new BeanPropertyRowMapper<Man>(Man.class));
}

四、总结

Spring JdbcTemplate提供了一个简便的方法来执行数据库操作,通过封装JDBC,减少了模板化的代码,提高了开发效率。本文介绍了JdbcTemplate的基本配置和使用方法,包括添加、查询等基本操作。通过实际代码示例,可以帮助开发者快速上手JdbcTemplate


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • Spring JdbcTemplate详解
  • Spring学习之JdbcTemplate
http://www.lryc.cn/news/473704.html

相关文章:

  • Docker篇(Docker安装)
  • Pytorch 实现图片分类
  • 得物App获评新奖项,正品保障夯实供应链创新水平
  • 【数据结构-邻项消除】力扣735. 小行星碰撞
  • 002-Kotlin界面开发之Kotlin旋风之旅
  • VMware Workstation Pro for Personal Use (For Windows)
  • 论文 | PROMPTAGATOR : FEW-SHOT DENSE RETRIEVAL FROM 8 EXAMPLES
  • 使用 Github 进行项目管理
  • 企业SRC挖掘选择与信息收集指南
  • Golang | Leetcode Golang题解之第524题通过删除字母匹配到字典里最长单词
  • 【DBeaver】连接带kerberos的hive[Apache|HDP]
  • Unity3D 开发教程:从入门到精通
  • 文件操作和 IO(一):文件基础知识 文件系统操作 => File类
  • 用Pyhon写一款简单的益智类小游戏——2048
  • akshare股票涨跌幅自定义范围查询:A股、港股、美股
  • 通过js控制修改css变量
  • <HarmonyOS第一课>HarmonyOS SDK开放能力简介的课后习题
  • 深度学习:yolo的使用--图像处理
  • TypeScript实用笔记(一):初始化、类型定义与函数使用
  • 【大数据学习 | kafka】producer之拦截器,序列化器与分区器
  • 零基础学西班牙语,柯桥专业小语种培训泓畅学校
  • C++学习:类和对象(三)
  • 高阶数据结构--图(graph)
  • xxl-job java.sql.SQLException: interrupt问题排查
  • jmeter压测工具环境搭建(Linux、Mac)
  • docker设置加速
  • 使用requestAnimationFrame写防抖和节流
  • Puppeteer 与浏览器版本兼容性:自动化测试的最佳实践
  • Java方法重写
  • vscode通过.vscode/launch.json 内置php服务启动thinkphp 应用后无法加载路由解决方法