ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring-JdbcTemplate

2021-11-05 18:02:51  阅读:182  来源: 互联网

标签:userServiceImpl JdbcTemplate Spring void userId User public user


目录

什么是 JdbcTemplate

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

环境


在Spring配置文件中配置数据库连接池

  <!--引入外部属性文件--> <context:property-placeholder location="classpath:jdbc.properties"/>
    <!--配置连接池-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${prop.driverClass}"/>
        <property name="url" value="${prop.url}"/>
        <property name="username" value="${prop.userName}"/>
        <property name="password" value="${prop.password}"/>
    </bean>

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
prop.driverClass=com.mysql.cj.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
prop.userName=root
prop.password=123456
#jdbc.properties配置文件

示例

//表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `userId` int(0) NOT NULL AUTO_INCREMENT,
  `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  PRIMARY KEY (`userId`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
package com.fly.spring5.entity;

public class User {

  private int userId;
  private String userName;

  public int getUserId() {
    return userId;
  }

  @Override
  public String toString() {
    return "User{" +
            "userId=" + userId +
            ", userName='" + userName + '\'' +
            '}';
  }

  public void setUserId(int userId) {
    this.userId = userId;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public User() {
  }

  public User(int userId, String userName) {
    this.userId = userId;
    this.userName = userName;
  }
}

添加

package com.fly.spring5.dao;

import com.fly.spring5.entity.User;

public interface UserDao {

  //添加方法
  public void add(User user);

}
package com.fly.spring5.dao.impl;

import com.fly.spring5.dao.UserDao;
import com.fly.spring5.entity.User;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;

@Repository
public class UserDaoImpl implements UserDao {

  @Resource
  private JdbcTemplate jdbcTemplate;

  @Override
  public void add(User user) {
    String sql = "insert into user values(null,?)";
    jdbcTemplate.update(sql,user.getUserName());
  }

}

package com.fly.spring5.service;

import com.fly.spring5.entity.User;

public interface UserService {
  
  public void add(User user);
  
}
package com.fly.spring5.service.impl;

import com.fly.spring5.dao.UserDao;
import com.fly.spring5.entity.User;
import com.fly.spring5.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserServiceImpl implements UserService {
  
  @Resource
  private UserDao userDao;
  
  @Override
  public void add(User user) {
    userDao.add(user);
  }
}

测试方法

 @Test
  public void test1() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
    User user = new User();
    user.setUserName("张三");
    userServiceImpl.add(user);
  }

删除

  //UserDao
  public void deleteById(Integer userId);
  @Override
  public void deleteById(Integer userId) {
    //UserDaoImpl
    String sql = "delete from user where userId = ?";
    jdbcTemplate.update(sql,userId);
  }
 //UserService
  void deleteById(Integer userId);
 @Override
  public void deleteById(Integer userId) {
    //UserServiceImpl
    userDao.deleteById(userId);
  }
  @Test
  public void test2() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
    userServiceImpl.deleteById(1);
  }


修改

//UserDao
  void update(User user);

  @Override
  public void update(User user) {
    //UserDaoImpl
    String sql = "update user set userName = ? where userId = ?";
    jdbcTemplate.update(sql,user.getUserName(),user.getUserId());
  }
//UserService
  void update(User user);
 @Override
  public void update(User user) {
    //UserServiceImpl
    userDao.update(user);
  }

 @Test
  public void test3() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
   //数据库现在没数据
    User user = new User();
    user.setUserId(3);
    user.setUserName("张三2");
    userServiceImpl.update(user);
  }


简单查询

 //UserDao
  int count();
 @Override
  public int count() {
    //UserDaoImpl
    String sql = "select count(*) from user";
    return jdbcTemplate.queryForObject(sql, Integer.class);
  }
  //UserService
  int count();
  @Override
  public int count() {
    //UserServiceImpl
    return userDao.count();
  }
@Test
  public void test4() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
    int count = userServiceImpl.count();
    System.out.println("count = " + count);
  }

查询返回对象

//UserDao
  User selectById(Integer userId);
@Override
  public User selectById(Integer userId) {
    //UserDaoImpl
    String sql = "select * from user where userId = ?";
    User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), userId);
    return user;
  }
//UserService
  User selectById(Integer userId);
 @Override
  public User selectById(Integer userId) {
    //UserServiceImpl
    return userDao.selectById(userId);
  }
 @Test
  public void test5() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
    User user = userServiceImpl.selectById(3);
    System.out.println("user = " + user);
  }

查询返回集合

 //UserDao
  List<User> getUsers();
  @Override
  public List<User> getUsers() {
    //UserDaoImpl
    String sql = "select * from user";
    List<User> userList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
    return userList;
  }
//UserService
  List<User> getUsers();
 @Override
  public List<User> getUsers() {
    //UserServiceImpl
    return userDao.getUsers();
  }
  @Test
  public void test6() {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("ApplicationContent.xml");
    UserServiceImpl userServiceImpl = context.getBean("userServiceImpl", UserServiceImpl.class);
    List<User> users = userServiceImpl.getUsers();
    System.out.println("users = " + users);
  }

批量操作


标签:userServiceImpl,JdbcTemplate,Spring,void,userId,User,public,user
来源: https://www.cnblogs.com/ftlzypx/p/15514523.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有