spring框架-jdbcTemplate
首先 dao层:
dao
-bookdao(interface)
-bookdaoimpl
service层:
bookService
实体类对象
entiry-book
测试类 Test-TestBook
结构如图所示:
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:component-scan base-package="com"></context:component-scan>
<!-- 数据库连接池 -->
<!-- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"-->
<!-- destroy-method="close">-->
<!-- <property name="url" value="jdbc:mysql:///user_db" />-->
<!-- <property name="username" value="root" />-->
<!-- <property name="password" value="110120" />-->
<!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" />-->
<!-- </bean>-->
<context:property-placeholder location="jdbc.properties"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${prop.driverClassName}"/>
<property name="url" value="${prop.url}"/>
<property name="username" value="${prop.username}"/>
<property name="password" value="${prop.password}"/>
</bean>
<!--jdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入datasource-->
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
jdbc的配置文件:
#prop.url=jdbc:mysql://localhost:3306/user_db?rewriteBatchedStatements=true
prop.url=jdbc:mysql://localhost:3306/user_db?useUnicode=true&characterEncoding=utf-8
prop.username=root
prop.password=110120
prop.driverClassName=com.mysql.jdbc.Driver
initialSize=10
maxActive=20
maxWait=1000
filters=wall
所需要jar包:
下面为具体代码:
dao层代码:
package com.dao;
import com.entiry.Book;
import java.util.List;
public interface bookDAO {
void add(Book book) ;
void update(Book book);
void delById(String Id);
int selectCount();
Book selectBook(String id);
List<Book> findList();
void addBatchList(List<Object[]> list);
void batchUpdateBook(List<Object[]> lists);
void batchDel(List<Object[]> list);
}
package com.dao;
import com.entiry.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.Arrays;
import java.util.List;
@Repository
public class bookDAOImpl implements bookDAO{
//注入jdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//添加的方法
@Override
public void add(Book book) {
String sql = "insert into book values(?,?,?)";
int update = jdbcTemplate.update(sql, book.getUserId(), book.getUsername(), book.getUstatus());
if (update == 1){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
}
@Override
public void update(Book book) {
String sql = "update book set username = ?,usatus = ? where user_id = ?";
int update = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus(), book.getUserId());
if (update == -1){
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
}
@Override
public void delById(String Id) {
String sql = "delete from book where user_id = ?";
int update = jdbcTemplate.update(sql, Id);
if (update == 1){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}
@Override
public int selectCount() {
String sql = "select count(*) from book";
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
return integer;
}
@Override
public Book selectBook(String id) {
String sql = "select * from book where user_id = ?";
Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
return book;
}
@Override
public List<Book> findList() {
String sql = " select * from book";
List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
return bookList;
}
@Override
public void addBatchList(List<Object[]> list) {
String sql = "insert into book values(?,?,?)";
int[] ints = jdbcTemplate.batchUpdate(sql,list);
System.out.println(Arrays.toString(ints));
}
@Override
public void batchUpdateBook(List<Object[]> lists) {
String sql = "update book set username =?,usatus = ? where user_id = ?";
int[] ints = jdbcTemplate.batchUpdate(sql, lists);
System.out.println(Arrays.toString(ints));
}
@Override
public void batchDel(List<Object[]> list) {
String sql ="delete from book where user_id = ?";
int[] ints = jdbcTemplate.batchUpdate(sql, list);
System.out.println(Arrays.toString(ints));
}
}
service层:
package com.service;
import com.dao.bookDAO;
import com.entiry.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
//注入dao
@Autowired
private bookDAO bookdao;
//添加
public void addBook(Book book){
bookdao.add(book);
}
//修改
public void update(Book book){
bookdao.update(book);
}
//删除
public void delById(String Id){
bookdao.delById(Id);
}
//查询返回某个值
public int FindCount(){
return bookdao.selectCount();
}
//查询返回某个对象
public Book findBook(String id){
return bookdao.selectBook(id);
}
//返回多个对象
public List<Book> findList(){
return bookdao.findList();
}
//批量添加
public void BatchAdd(List<Object[]> list){
bookdao.addBatchList(list);
}
//批量修改
public void batchUpdateBook(List<Object []> lists){
bookdao.batchUpdateBook(lists);
}
//批量删除
public void batchDel(List<Object []> list){
bookdao.batchDel(list);
}
}
entiry层:
package com.entiry;
public class Book {
private String userId;
private String username;
private String ustatus;
public Book() {
}
public Book(String userId, String username, String ustatus) {
this.userId = userId;
this.username = username;
this.ustatus = ustatus;
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setUsername(String username) {
this.username = username;
}
public void setUstatus(String ustatus) {
this.ustatus = ustatus;
}
public String getUserId() {
return userId;
}
public String getUsername() {
return username;
}
public String getUstatus() {
return ustatus;
}
@Override
public String toString() {
return "Book{" +
"userId='" + userId + '\'' +
", username='" + username + '\'' +
", ustatus='" + ustatus + '\'' +
'}';
}
}
测试类:
package com.Test;
import com.entiry.Book;
import com.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.ArrayList;
import java.util.List;
public class TestBook {
/**
* 测试jdbc 的add 方法
*/
@Test
public void testADD (){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
bookService.addBook(new Book("3","Tom","a"));
}
/**
* 测试修改功能
*/
@Test
public void testUpdate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
bookService.update(new Book("1","Rose1","atuguig"));
}
/**
* 测试删除功能
*/
@Test
public void testDel(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
bookService.delById("1");
}
/**
* 测试查询个数的功能
*/
@Test
public void testSelectCount(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
int count = bookService.FindCount();
System.out.println(count);
}
/**
* 测试查询单个对象的功能
*/
@Test
public void testSelectOneBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
Book book = bookService.findBook("1");
System.out.println(book.toString());
}
/**
* 测试查询多个对象的功能
*/
@Test
public void testSelectAllBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Book> list = bookService.findList();
System.out.println(list);
}
/**
* 测试批量添加多个对象的功能
*/
@Test
public void testAddSomeBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list = new ArrayList<>();
Object [] o1 = {"4","javac","a"};
Object [] o2 = {"5","c","b"};
Object [] o3 = {"6","c++","a"};
list.add(o1);
list.add(o2);
list.add(o3);
bookService.BatchAdd(list);
}
/**
* 测试批量修改多个对象的功能
*/
@Test
public void testModifySomeBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list = new ArrayList<>();
Object [] o1 = {"javac1","a","4"};
Object [] o2 = {"c1","b","5"};
Object [] o3 = {"c++1","a","6"};
list.add(o1);
list.add(o2);
list.add(o3);
bookService.batchUpdateBook(list);
}
/**
* 测试批量删除多个对象的功能
*/
@Test
public void testDelSomeBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list = new ArrayList<>();
Object [] o1 = {"4"};
Object [] o2 = {"5"};
Object [] o3 = {"6"};
list.add(o1);
list.add(o2);
list.add(o3);
bookService.batchDel(list);
}
}
数据库表格:
测试结果均可!
spring框架-jdbcTemplate的更多相关文章
- Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test
package cn.zmh.PingCe; import org.junit.Test; import org.springframework.jdbc.core.BeanPropertyRowMa ...
- 设计模式(十五)——命令模式(Spring框架的JdbcTemplate源码分析)
1 智能生活项目需求 看一个具体的需求 1) 我们买了一套智能家电,有照明灯.风扇.冰箱.洗衣机,我们只要在手机上安装 app 就可以控制对这些家电工作. 2) 这些智能家电来自不同的厂家,我们不想针 ...
- Spring框架之使用JdbcTemplate开发Dao层程序
简介: JdbcTemplate开发dao层程序 由Spring框架给我们提供,Spring提供的很多操作数据源(关系型数据库,二维表格模型,有明确的行和列(mysql/orcal等) 非关系 ...
- 使用spring框架的JdbcTemplate实现对Oracle数据库的简单操作实例
最近实现了一个小功能,针对Oracle数据库两张关联表进行查询和修改,因为比较简单,所以选择了spring框架里的JdbcTemplate.JdbcTemplate算是老古董了,是当年spring为了 ...
- Spring框架针对dao层的jdbcTemplate操作crud之delete删除数据库操作 Spring相关Jar包下载
首先,找齐Spring框架中IoC功能.aop功能.JdbcTemplate功能所需的jar包,当前13个Jar包 1.Spring压缩包中的四个核心JAR包,实现IoC控制反转的根据xml配置文件或 ...
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作
查询目标是完成3个功能: (1)查询表,返回某一个值.例如查询表中记录的条数,返回一个int类型数据 (2)查询表,返回结果为某一个对象. (3)查询表,返回结果为某一个泛型的list集合. 一.查询 ...
- Spring框架针对dao层的jdbcTemplate操作crud之update修改数据库操作
使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...
- Spring框架针对dao层的jdbcTemplate操作crud之add添加数据库操作
使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...
- Spring框架之JdbcTemplate
Spring框架之JdbcTemplate 一.JdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到Jd ...
随机推荐
- 283. 移动零--LeetCode__双指针
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/move-zeroes 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. 思路 用一 ...
- 大家都能看得懂的源码 - ahooks 是怎么处理 DOM 的?
本文是深入浅出 ahooks 源码系列文章的第十三篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 本篇文章探讨一下 ahooks 对 DOM 类 Hooks 使用 ...
- windows优化原神
原神3.0新地图很卡顿? 锐距显卡带不动? 看一下我的配置 英特尔i5-1135G7 内存16GB可以拓展32GB 固态512GB 原神优化前帧率50左右 优化后59-60最差55 展示图原神设置图 ...
- ESP8266 RTOS SDK开发
ESP8266 RTOS SDK开发 目录 ESP8266 RTOS SDK开发 一.源码RTOS SDK包的下载和编译 二.固件烧录 1.管脚定义 三.程序例程 ## 1.PWM设置 连接MQTT ...
- MFRC522学习笔记
MFRC522主要特性 容量为8K位(bits)=1K字节(bytes)EEPROM 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 每个扇区有独立的一组密码及访问控制 每张卡有唯一序 ...
- Kingbase V8R6存储过程变量数据导出到操作系统文件
Kingbase V8R6存储过程变量数据导出到操作系统文件 说明: KingbaseES V8R6如何将自定义过程中的变量数据导出到操作系统文件中. 本次案例数据库版本: test=# select ...
- mac_VMWare安装总结
MacOS 安装VmWare 总结 如果之前安装过virtualBox,virtualBox的内核扩展会影响到VmWare的使用 *比如会导致VMWare虽然可以安装,却无法创建虚拟机 这是需要执行以 ...
- Python数据科学手册-Numpy数组的计算,通用函数
Python的默认实现(CPython)处理某些操作非常慢,因为动态性和解释性, CPython 在每次循环必须左数据类型的检查和函数的调度..在编译是进行这样的操作.就会加快执行速度. 通用函数介绍 ...
- vue3 的 ref、isRef、toRef、toRefs、toRaw 详细介绍
ref.isRef.toRef.toRefs.toRaw 看着一堆类似的东西,一个头两个大,今天整理一篇文章详细介绍它们的功能及区别. 1.ref ref 属性除了能够获取元素外,也可以使用 ref ...
- Django环境安装
1.安装Django # 自动安装PyPi提供的最新版本 pip install django # 安装指定版本 pip install django==2.2 # 验证安装 >>> ...