链接:https://pan.baidu.com/s/15luDElW4oeEaP0nvEQ_40w

提取码:i2r1

JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。

接下来,使用JdbcTemplate进行增删改查(CRUD)的操作

写一个pojo类(不是重点)

 package top.bigking.pojo;

 import java.util.Date;

 public class User {
private Integer id;
private String username;
private String password;
private Date birthday;
private Integer age; public User() {
} public User(Integer id, String username, String password, Date birthday, Integer age) {
this.id = id;
this.username = username;
this.password = password;
this.birthday = birthday;
this.age = age;
} public User(String username, String password, Date birthday, Integer age) {
this.username = username;
this.password = password;
this.birthday = birthday;
this.age = age;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", birthday=" + birthday +
", age=" + age +
'}';
}
}

再写一个接口

 package top.bigking.dao;

 import top.bigking.pojo.User;

 import java.util.List;

 public interface UserDao {
public int insertUser(User user);
public int deleteById(Integer id);
public int updateUser(User user);
public List<User> queryUser();
public User selectUserById(Integer id);
}

接下来对接口进行实现:

 package top.bigking.dao.impl;

 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 top.bigking.dao.UserDao;
import top.bigking.pojo.User; import java.util.List; @Repository("userDao")
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate; @Override
public int insertUser(User user) {
String sql = "insert into t_user(user_name, password, birthday, age) values(?, ?, ?, ?)";
return jdbcTemplate.update(sql, user.getUsername(), user.getPassword(), user.getBirthday(), user.getAge());
} @Override
public int deleteById(Integer id) {
String sql = "delete from t_user where id = ?";
return jdbcTemplate.update(sql, id);
} @Override
public int updateUser(User user) {
String sql = "update t_user set user_name = ?, password = ?, birthday = ?, age = ?";
return jdbcTemplate.update(sql, user.getUsername(), user.getPassword(), user.getBirthday(), user.getAge());
} @Override
public List<User> queryUser() {
String sql = "select * from t_user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
} @Override
public User selectUserById(Integer id) {
String sql = "select * from t_user where id = ?";
return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), id);
}
}

接下来使用单元测试一个一个测试:

 package top.bigking.test;

 import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.bigking.dao.UserDao;
import top.bigking.pojo.User; import java.util.Date;
import java.util.List; public class TestJdbc {
private UserDao userDao; @Before
public void connect(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
userDao = (UserDao) applicationContext.getBean("userDao");
}
@Test
public void testConnect(){
User user = userDao.selectUserById(6);
System.out.println(user);
}
@Test
public void testInsertUser(){
User user = new User("ABKing", "123456", new Date(), 20);
System.out.println(userDao.insertUser(user));
} @Test
public void testDeleteUser(){
System.out.println(userDao.deleteById(6));
}
@Test
public void testUpdateUser(){
User user = new User(36, "ABKing", "666666", new Date(), 20);
System.out.println(userDao.updateUser(user));
}
@Test
public void testQuery(){
List<User> userList = userDao.queryUser();
for(User user : userList){
System.out.println(user);
}
}
}

Spring对Jdbc的封装——JdbcTemplate的使用的更多相关文章

  1. 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】

    一.JDBC编程特点 静态代码+动态变量=JDBC编程. 静态代码:比如所有的数据库连接池 都实现了DataSource接口,都实现了Connection接口. 动态变量:用户名.密码.连接的数据库. ...

  2. Spring抽象JDBC,使用JdbcTemplate

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  3. Spring对jdbc的支持

    Spring对jdbc技术提供了很好的支持. 体现在: 1)Spring对c3p连接池的支持很完善: 2)Spring对jdbc提供了JdbcTemplate,来简化jdbc操作: 1.使用步骤 1) ...

  4. Spring对jdbc支持

    4. Spring对jdbc支持 spring对jdbc提供了很好的支持 体现在: 1.Spring对C3P0连接池的支持很完善 2.Spring对jdbc提供了jdbcTemplate来简化jdbc ...

  5. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. spring boot + druid + 封装JdbcTemplate

    本源码内容如下: spring boot项目 用的druid连接池 druid监控页面配置 数据操作用spring jdbctemplate 进一步封装spring jdbctemplate支持用对象 ...

  7. Spring的JDBC框架

    转自: http://www.cnblogs.com/windlaughing/p/3287750.html Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...

  8. Spring实战6:利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  9. spring 整合JDBC

    使用Spring提供的三个JDBC模板类(JdbcTemplate.NamedParameterJdbcTemplate.SimpleJdbcTemplate)操作数据库 一.JdbcTemplate ...

随机推荐

  1. Redis(一)

    1 单机MySQL的美好时代2 Memcached(缓存)+MySQL+垂直拆分3 MySQL主从读写分离4 分库分表+水平拆分+mysql拆分5 MySQL的扩展瓶颈6 为什么使用NoSQLNoSQ ...

  2. Hibernate实体对象的生命周期(三种状态)

    瞬时状态(Transient) 通过new创建对象后,对象并没有立刻持久化,它并未与数据库中的数据有任何关联,此时Java对象的状态为瞬时状态. Session对于瞬时状态的Java对象是一无所知的, ...

  3. 【leetcode】Sliding Puzzle

    题目如下: On a 2x3 board, there are 5 tiles represented by the integers 1 through 5, and an empty square ...

  4. java 实现 图片与byte 数组互相转换

    package webgate; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ja ...

  5. Java面试框架篇(8)

    71,谈谈你对Struts的理解. 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个Servlet,这个Servlet名为ActionServlet,或是ActionServle ...

  6. Linux基础教程 linux中使用find命令搜索文件常用方法记录

    find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...

  7. BZOJ 2217: [Poi2011]Lollipop 构造 + 思维

    Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T").现在有m个询问,每个询问是询问有没有一个连 ...

  8. Codeforces 912E Prime Gift ( 二分 && 折半枚举 && 双指针技巧)

    题意 : 给你 N ( 1 ≤ N ≤ 16 ) 个质数,然后问你由这些质数作为因子的数 ( 此数不超 10^18 ) & ( 不一定需要其因子包含所给的所有质数 ) 的第 k 个是什么 分析 ...

  9. Python稀疏矩阵运算

    import numpy as np import scipy import time import scipy.sparse as sparse t = [1]+[0]*4999 a = scipy ...

  10. 模板_SEG_TREE

    #include<bits/stdc++.h> #define maxn 500005 #define int long long using namespace std; inline ...