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 ...
随机推荐
- 若依 | 点击顶部 tag 标签不自动刷新
需求场景 之前:只要点击若依顶部的标签,页面都会自动刷新. 问题:A 页面有查询结果,切换到 B 页面查看信息,再切回 A 页面,则 A 页面的查询结果不会保留. 需求:点击标签,页面不自动刷新,或者 ...
- python爬虫之BeautifulSoup4使用
钢铁知识库,一个学习python爬虫.数据分析的知识库.人生苦短,快用python. 上一章我们讲解针对结构化的html.xml数据,使用Xpath实现网页内容爬取.本章我们再来聊另一个高效的神器:B ...
- 哔哩哔哩b站提取Cookie方法,bilibili获取Cookie教程
大家可能对Cookie很陌生,甚至不知道是干嘛用,没关系,今天小编详细给大家讲解! Cookie是保存在客户端的纯文本文件,比如txt文件,所谓的客户端就是我们自己的本地电脑,当我们使用自己的电脑通过 ...
- 1.3_HTML基础知识
打开记事本,输入 <html> <hand> <title>我要自学网</title> </hand> <body> <h ...
- Docker问题:"docker build" requires exactly 1 argument.
今天在搭建Docker私有仓库的时候.提示错误:"docker build" requires exactly 1 argument. 原因是因为(少了一个 '.' , '.' 代 ...
- 第二章 Kubernetes快速入门
一.四组基本概念 Pod/Pod控制器: Name/Namespace: Label/Label选择器: Service/Ingress. 二.Pod/Pod控制器 2.1 Pod Pod是K8S里能 ...
- [Python]-openpyxl模块Excel数据处理-读取公式的结果
日常需要Python来处理各种数据,处理Excel数据常用的库一般有openpyxl.xlrd(读取).xlwt(写入). 经过对比发现openpyxl模块比较好用. openpyxl模块 这篇笔记比 ...
- elementUI中page(分页)的使用方法
HTML部分 <!-- 快捷键 page-div --> <el-pagination background layout="sizes,prev, pager, next ...
- Nessus-8.11.1-x64.msi安装包
希望能给那些和我一样迷茫受挫的小伙伴们一些帮助,这玩意儿下载挺慢的,我把安装包分享出来,如果有博客园账号的,点个赞呗,CSDN那些用着别人的软件还要积分,呸! 08-18更新,截止到现在,已更新到最新 ...
- (数据科学学习手札143)为geopandas添加gdb文件写出功能
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,很多读者朋友跟随着我先前写作的 ...