網(wǎng)站首頁 編程語言 正文
目錄
1.依賴導(dǎo)入
2.編寫數(shù)據(jù)庫連接信息 jdbc.properties
3.編寫xml配置文件
4.基于jdbcTemplate的CRUD使用
5.基于jdbcTemplate的持久層編寫示例
1.依賴導(dǎo)入
<dependencies>
<!-- 數(shù)據(jù)庫驅(qū)動和連接池-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<!-- spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>6.0.6</version>
</dependency>
</dependencies>
2.編寫數(shù)據(jù)庫連接信息 jdbc.properties
atguigu.url=jdbc:mysql://localhost:3306/數(shù)據(jù)庫名
atguigu.driver=com.mysql.cj.jdbc.Driver
atguigu.username=root(自己的賬號)
atguigu.password=root(自己的密碼)
3.編寫xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 導(dǎo)入外部屬性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 配置數(shù)據(jù)源 -->
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${atguigu.url}"/>
<property name="driverClassName" value="${atguigu.driver}"/>
<property name="username" value="${atguigu.username}"/>
<property name="password" value="${atguigu.password}"/>
</bean>
<!-- 配置 JdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 裝配數(shù)據(jù)源 -->
<property name="dataSource" ref="druidDataSource"/>
</bean>
</beans>
4.基于jdbcTemplate的CRUD使用
public class JdbcTemplateTest {
/**
* 使用jdbcTemplate進(jìn)行DML動作
*/
@Test
public void testDML(){
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring-ioc.xml");
JdbcTemplate jdbcTemplate = applicationContext.getBean(JdbcTemplate.class);
//TODO 執(zhí)行插入一條學(xué)員數(shù)據(jù)
String sql = "insert into students (id,name,gender,age,class) values (?,?,?,?,?);";
/*
參數(shù)1: sql語句
參數(shù)2: 可變參數(shù),占位符的值
*/
int rows = jdbcTemplate.update(sql, 9,"十一", "男", 18, "二年三班");
System.out.println("rows = " + rows);
}
/**
* 查詢單條實(shí)體對象
* public class Student {
* private Integer id;
* private String name;
* private String gender;
* private Integer age;
* private String classes;
*/
@Test
public void testDQLForPojo(){
String sql = "select id , name , age , gender , class as classes from students where id = ? ;";
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring-ioc.xml");
JdbcTemplate jdbcTemplate = applicationContext.getBean(JdbcTemplate.class);
//根據(jù)id查詢
Student student = jdbcTemplate.queryForObject(sql, (rs, rowNum) -> {
//自己處理結(jié)果映射
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setAge(rs.getInt("age"));
stu.setGender(rs.getString("gender"));
stu.setClasses(rs.getString("classes"));
return stu;
}, 2);
System.out.println("student = " + student);
}
/**
* 查詢實(shí)體類集合
*/
@Test
public void testDQLForListPojo(){
String sql = "select id , name , age , gender , class as classes from students ;";
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring-ioc.xml");
JdbcTemplate jdbcTemplate = applicationContext.getBean(JdbcTemplate.class);
/*
query可以返回集合!
BeanPropertyRowMapper就是封裝好RowMapper的實(shí)現(xiàn),要求屬性名和列名相同即可
*/
List<Student> studentList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
System.out.println("studentList = " + studentList);
}
}
5.基于jdbcTemplate的持久層編寫示例
//接口
public interface StudentDao {
/**
* 查詢?nèi)繉W(xué)生數(shù)據(jù)
* @return
*/
List<Student> queryAll();
}
//實(shí)現(xiàn)類
public class StudentDaoImpl implements StudentDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 查詢?nèi)繉W(xué)生數(shù)據(jù)
* @return
*/
@Override
public List<Student> queryAll() {
String sql = "select id , name , age , gender , class as classes from students ;";
/*
query可以返回集合!
BeanPropertyRowMapper就是封裝好RowMapper的實(shí)現(xiàn),要求屬性名和列名相同即可
*/
List<Student> studentList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
return studentList;
}
}
原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136075177
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-11-25 詳解C++中類的六大默認(rèn)成員函數(shù)_C 語言
- 2022-11-28 協(xié)程作用域概念迭代RxTask?實(shí)現(xiàn)自主控制_Android
- 2022-11-17 有意思的數(shù)據(jù)結(jié)構(gòu)默克樹?Merkle?tree應(yīng)用介紹_其它綜合
- 2022-11-14 Git暫存區(qū)的意義或git add的意義
- 2022-03-16 .net?6項(xiàng)目實(shí)現(xiàn)壓縮發(fā)布_實(shí)用技巧
- 2022-07-06 QT5實(shí)現(xiàn)簡單的TCP通信的實(shí)現(xiàn)_C 語言
- 2022-08-12 python利用winreg生成桌面路徑及實(shí)現(xiàn)掃描二維碼圖片返回相關(guān)信息_python
- 2023-03-15 pandas創(chuàng)建DataFrame對象失敗的解決方法_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支