網站首頁 編程語言 正文
目錄
1.依賴導入
2.編寫數據庫連接信息 jdbc.properties
3.編寫xml配置文件
4.基于jdbcTemplate的CRUD使用
5.基于jdbcTemplate的持久層編寫示例
1.依賴導入
<dependencies>
<!-- 數據庫驅動和連接池-->
<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.編寫數據庫連接信息 jdbc.properties
atguigu.url=jdbc:mysql://localhost:3306/數據庫名
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">
<!-- 導入外部屬性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 配置數據源 -->
<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">
<!-- 裝配數據源 -->
<property name="dataSource" ref="druidDataSource"/>
</bean>
</beans>
4.基于jdbcTemplate的CRUD使用
public class JdbcTemplateTest {
/**
* 使用jdbcTemplate進行DML動作
*/
@Test
public void testDML(){
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring-ioc.xml");
JdbcTemplate jdbcTemplate = applicationContext.getBean(JdbcTemplate.class);
//TODO 執行插入一條學員數據
String sql = "insert into students (id,name,gender,age,class) values (?,?,?,?,?);";
/*
參數1: sql語句
參數2: 可變參數,占位符的值
*/
int rows = jdbcTemplate.update(sql, 9,"十一", "男", 18, "二年三班");
System.out.println("rows = " + rows);
}
/**
* 查詢單條實體對象
* 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);
//根據id查詢
Student student = jdbcTemplate.queryForObject(sql, (rs, rowNum) -> {
//自己處理結果映射
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);
}
/**
* 查詢實體類集合
*/
@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的實現,要求屬性名和列名相同即可
*/
List<Student> studentList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
System.out.println("studentList = " + studentList);
}
}
5.基于jdbcTemplate的持久層編寫示例
//接口
public interface StudentDao {
/**
* 查詢全部學生數據
* @return
*/
List<Student> queryAll();
}
//實現類
public class StudentDaoImpl implements StudentDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 查詢全部學生數據
* @return
*/
@Override
public List<Student> queryAll() {
String sql = "select id , name , age , gender , class as classes from students ;";
/*
query可以返回集合!
BeanPropertyRowMapper就是封裝好RowMapper的實現,要求屬性名和列名相同即可
*/
List<Student> studentList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
return studentList;
}
}
原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136075177
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-08-10 Python格式化輸出的具體實現_python
- 2022-06-02 jquery實現淘寶商品圖片局部放大_jquery
- 2022-11-25 Linux?apache實現https的配置方法_Linux
- 2022-08-14 Android?中TextureView和SurfaceView的屬性方法及示例說明_Android
- 2022-11-06 react中關于Context/Provider/Consumer傳參的使用_React
- 2022-08-16 C#?IEnumerator枚舉器的具體使用_C#教程
- 2022-08-18 Python壓縮包處理模塊zipfile和py7zr操作代碼_python
- 2022-05-06 Pandas?DataFrame數據修改值的方法_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支