链接: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. 批处理实现自动Git push

    用Git用的多,每次修改文件后都需要敲几条命令: git add git commit git push ······ 太麻烦了 于是想到使用批处理(.bat)来自动化这个过程(注意:Windows环 ...

  2. python之同步IO和异步IO

    linux操作系统基础知识 用户空间和内核空间 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核保证内核的安全,操 ...

  3. pt-online-schema-change在线修改脚本

    pt-online-schema-change在线修改脚本 经过几次在测试环境中使用,发现5.6和5.7可以正常使用.mysql8.0.18版本中,竟然无法使用,感到惊讶.难道mysql8.0.18强 ...

  4. 【NOIP2016提高A组五校联考2】running

    题目 小胡同学是个热爱运动的好孩子. 每天晚上,小胡都会去操场上跑步,学校的操场可以看成一个由n个格子排成的一个环形,格子按照顺时针顺序从0 到n- 1 标号. 小胡观察到有m 个同学在跑步,最开始每 ...

  5. jquery 判断文字是否超出div出现三个点的省略号

    现在有个需求,就是一个div宽度固定,但是文字可能会超出,超出出现三个点省略,然后鼠标划入的时候显示全部,不超出鼠标划入就不显示,这就意味着要判断文字是否超出了 参考代码 <html lang= ...

  6. docker跨主机通信-overlay

    使用consul 1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul. 直接运行下面命令.启动consul. docker run -d -p 8500:85 ...

  7. C# 获得对象的命名空间 ?.

    A a = new A(); var t = a?.ToString(); //t = WebApplication1.Controllers.A //获得命名空间和类名 var t1 = (A)nu ...

  8. sh_09_打印多条分隔线

    sh_09_打印多条分隔线 def print_line(char, times): """打印单行分隔线 :param char: 分隔字符 :param times: ...

  9. 【gym102394B】Binary Numbers(DP)

    题意:From https://blog.csdn.net/m0_37809890/article/details/102886956 思路: 可以发现转移就是右上角的一个区间前缀和 std只要开1倍 ...

  10. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...