Spring5——JdbcTemplate笔记

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

Spring5——JdbcTemplate笔记

概念

template,翻译过来是模板的意思,顾名思义,JdbcTemplate就是一个JDBC的模板,它对JDBC进行了封装,可以很方便地实现对数据库的CRUD(增、删、改、查)的操作。
JdbcTemplate准备工作

引入相关的依赖


  • druid-1.1.9.jar
  • mysql-connector-java-5.1.7-bin.jar
  • spring-tx-5.2.6.RELEASE.jar
  • spring-orm-5.2.6.RELEASE.jar
  • 在这里要注意相关jar包的版本,比如说Java连接MySQL的驱动包的版本应该与目的数据库的版本一致
配置数据库连接池、在JdbcTemplate对象中注入DataSource(数据源)

这里用xml配置文件来配置相关的信息
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.        xmlns:context="http://www.springframework.org/schema/context"
  5.        xmlns:aop="http://www.springframework.org/schema/aop"
  6.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7.                            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  8.                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
  9.     <context:component-scan base-package="com.ws.spring"></context:component-scan>
  10.    
  11.     <bean id="dataSource"
  12.           destroy-method="close">
  13.         <property name="url" value="jdbc:mysql:///study" />
  14.         <property name="username" value="root" />
  15.         <property name="password" value="123" />
  16.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  17.     </bean>
  18.    
  19.     <bean id="jdbcTemplate" >
  20.         
  21.         <property name="dataSource" ref="dataSource"></property>
  22.     </bean>
  23. </beans>
复制代码
JdbcTemplate的使用

创建service类、创建dao类
  1. package com.spring.service;
  2. //        service类
  3. @Service
  4. public class UserService {
  5. }
复制代码
  1. package com.spring.dao;
  2. //        dao类
  3. public interface UserDao {
  4. }
复制代码
  1. package com.spring.dao;
  2. //        dao的实现类
  3. @Repository
  4. public class UserDaoImpl implements UserDao {
  5. }
复制代码
在service类中注入dao类的对象属性
  1. package com.spring.service;
  2. @Service
  3. public class UserService {
  4.     //注入dao对象
  5.     @Autowired
  6.     private UserDao userDao;
  7. }
复制代码
在dao类中注入JdbcTemplate对象
  1. package com.spring.dao;
  2. @Repository
  3. public class UserDaoImpl implements UserDao {
  4.     //注入jdbcTemplate对象
  5.     @Autowired
  6.     private JdbcTemplate jdbcTemplate;
  7. }
复制代码
增删改查


  • 实体类
    1. package com.spring.entiey;
    2. public class User {
    3.     private Integer id;
    4.     private String name;
    5.     private Integer age;
    6.     private String email;
    7.     public User() {
    8.     }
    9.     public User(Integer id, String name, Integer age, String email) {
    10.         this.id = id;
    11.         this.name = name;
    12.         this.age = age;
    13.         this.email = email;
    14.     }
    15.     @Override
    16.     public String toString() {
    17.         return "User{" +
    18.                 "id=" + id +
    19.                 ", name='" + name + '\'' +
    20.                 ", age=" + age +
    21.                 ", email='" + email + '\'' +
    22.                 '}';
    23.     }
    24.     public Integer getId() {
    25.         return id;
    26.     }
    27.     public void setId(Integer id) {
    28.         this.id = id;
    29.     }
    30.     public String getName() {
    31.         return name;
    32.     }
    33.     public void setName(String name) {
    34.         this.name = name;
    35.     }
    36.     public Integer getAge() {
    37.         return age;
    38.     }
    39.     public void setAge(Integer age) {
    40.         this.age = age;
    41.     }
    42.     public String getEmail() {
    43.         return email;
    44.     }
    45.     public void setEmail(String email) {
    46.         this.email = email;
    47.     }
    48. }
    复制代码
  • UserDao
    1. package com.spring.dao;
    2. public interface UserDao {
    3.     //添加的方法
    4.     void add(User user);
    5.     //修改的方法
    6.     void updateUser(User user);
    7.     //删除的方法
    8.     void deleteUser(int id);
    9.     //查询表记录数
    10.     int selectCount();
    11.     //查询返回对象
    12.     User findUserInfo(int id);
    13.     //查询返回集合
    14.     List<User> findAllUser();
    15.     //批量添加数据
    16.     void batchAddUser(List<Object[]> batchArgs);
    17. }
    复制代码
  • UserDaoImpl
    1. package com.spring.dao;
    2. @Repository
    3. public class UserDaoImpl implements UserDao {
    4.     //注入jdbcTemplate对象
    5.     @Autowired
    6.     private JdbcTemplate jdbcTemplate;
    7.     @Override
    8.     public void add(User user) {
    9.         //用jdbcTemplate来操作数据库
    10.         String sql = "insert into userinfo values (?,?,?,?)";
    11.         Object[] args = {user.getId(),user.getName(),user.getAge(),user.getEmail()};
    12.         int update = jdbcTemplate.update(sql,args);
    13.         System.out.println(update);
    14.     }
    15.     @Override
    16.     public void updateUser(User user) {
    17.         String sql = "update userinfo set name=? where id=?";
    18.         Object[] args = {user.getName(),user.getId()};
    19.         int update = jdbcTemplate.update(sql, args);
    20.         System.out.println("修改了:"+update);
    21.     }
    22.     @Override
    23.     public void deleteUser(int id) {
    24.         String sql = "delete from userinfo where id=?";
    25.         int update = jdbcTemplate.update(sql, id);
    26.         System.out.println("删除了:"+update);
    27.     }
    28.     //查询表中的记录数
    29.     @Override
    30.     public int selectCount() {
    31.         String sql = "select count(*) from userinfo";
    32.         Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
    33.         return count;
    34.     }
    35.     //查询返回对象
    36.     @Override
    37.     public User findUserInfo(int id) {
    38.         String sql  = "select * from userinfo where id=?";
    39.         User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
    40.         return user;
    41.     }
    42.     //查询返回集合
    43.     @Override
    44.     public List<User> findAllUser() {
    45.         String sql = "select * from userinfo";
    46.         List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
    47.         return users;
    48.     }
    49.     //批量添加
    50.     @Override
    51.     public void batchAddUser(List<Object[]> batchArgs) {
    52.         String sql = "insert into userinfo values (?,?,?,?)";
    53.         int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
    54.         System.out.println(Arrays.toString(ints));
    55.     }
    56. }
    复制代码
  • UserService
    1. package com.spring.service;
    2. @Service
    3. public class UserService {
    4.     //注入dao对象
    5.     @Autowired
    6.     private UserDao userDao;
    7.     //添加数据的方法
    8.     public void addUser(User user){
    9.         userDao.add(user);
    10.     }
    11.     //修改数据的方法
    12.     public void updateUser(User user){
    13.         userDao.updateUser(user);
    14.     }
    15.     //删除数据的方法
    16.     public void deleteUser(int id){
    17.         userDao.deleteUser(id);
    18.     }
    19.     //查询表中记录数
    20.     public int findCount(){
    21.         int count = userDao.selectCount();
    22.         return count;
    23.     }
    24.     //查询返回对象
    25.     public User findOne(int id){
    26.         User userInfo = userDao.findUserInfo(id);
    27.         return userInfo;
    28.     }
    29.     //查询返回集合
    30.     public List<User> findAll(){
    31.         return userDao.findAllUser();
    32.     }
    33.     //批量添加数据
    34.     public void batchAdd(List<Object[]> batchArgs){
    35.         userDao.batchAddUser(batchArgs);
    36.     }
    37. }
    复制代码
  • 测试类
    1. package com.spring.testdemo;
    2. @SuppressWarnings({"all"})
    3. public class TestSpringDemo {
    4.           //添加单条数据
    5.     @Test
    6.     public void testAdd(){
    7.         ApplicationContext context =
    8.                 new ClassPathXmlApplicationContext("bean.xml");
    9.         UserService userService = context.getBean("userService", UserService.class);
    10.         User user = new User();
    11.         user.setName("111");
    12.         user.setId(10);
    13.         user.setAge(18);
    14.         user.setEmail("shuaiwang2019@126.com");
    15.         System.out.println("user= "+user);
    16.         userService.addUser(user);
    17.     }
    18.           //修改单条数据
    19.     @Test
    20.     public void testUpdate(){
    21.         ApplicationContext context =
    22.                 new ClassPathXmlApplicationContext("bean.xml");
    23.         UserService userService = context.getBean("userService", UserService.class);
    24.         User user = new User();
    25.         user.setName("test");
    26.         user.setId(1);
    27.         System.out.println("user= "+user);
    28.         userService.updateUser(user);
    29.     }
    30.           //删除单条数据
    31.     @Test
    32.     public void testDelete(){
    33.         ApplicationContext context =
    34.                 new ClassPathXmlApplicationContext("bean.xml");
    35.         UserService userService = context.getBean("userService", UserService.class);
    36.         userService.deleteUser(1);
    37.     }
    38. }
    复制代码
    1. package com.spring.testdemo;
    2. public class TestJdbcTemplateSelect {
    3.     //查询记录数
    4.     @Test
    5.     public void testSelectCount(){
    6.         ApplicationContext context =
    7.                 new ClassPathXmlApplicationContext("bean.xml");
    8.         UserService userService = context.getBean("userService", UserService.class);
    9.         int count = userService.findCount();
    10.         System.out.println(count);
    11.     }
    12.     //查询返回对象
    13.     @Test
    14.     public void testSelectUserInfo(){
    15.         ApplicationContext context =
    16.                 new ClassPathXmlApplicationContext("bean.xml");
    17.         UserService userService = context.getBean("userService", UserService.class);
    18.         User userInfo = userService.findOne(10);
    19.         System.out.println(userInfo);
    20.     }
    21.     //查询返回集合
    22.     @Test
    23.     public void testSelectAll(){
    24.         ApplicationContext context =
    25.                 new ClassPathXmlApplicationContext("bean.xml");
    26.         UserService userService = context.getBean("userService", UserService.class);
    27.         List<User> users = userService.findAll();
    28.         System.out.println(users);
    29.     }
    30.     //批量添加
    31.     @Test
    32.     public void testBatchAdd(){
    33.         ApplicationContext context =
    34.                 new ClassPathXmlApplicationContext("bean.xml");
    35.         UserService userService = context.getBean("userService", UserService.class);
    36.         //要添加的集合
    37.         List<Object[]> batchArgs = new ArrayList<>();
    38.         Object[] o1 = {11,"java",24,"java@126.com"};
    39.         Object[] o2 = {12,"python",30,"python@126.com"};
    40.         Object[] o3 = {13,"c++",40,"c++@126.com"};
    41.         batchArgs.add(o1);
    42.         batchArgs.add(o2);
    43.         batchArgs.add(o3);
    44.         userService.batchAdd(batchArgs);
    45.     }
    46. }
    复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表