ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Spring5——JdbcTemplate笔记
[打印本页]
作者:
半亩花草
时间:
2022-6-24 03:11
标题:
Spring5——JdbcTemplate笔记
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配置文件来配置相关的信息
<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="com.ws.spring"></context:component-scan>
<bean id="dataSource"
destroy-method="close">
<property name="url" value="jdbc:mysql:///study" />
<property name="username" value="root" />
<property name="password" value="123" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>
<bean id="jdbcTemplate" >
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
复制代码
JdbcTemplate的使用
创建service类、创建dao类
package com.spring.service;
// service类
@Service
public class UserService {
}
复制代码
package com.spring.dao;
// dao类
public interface UserDao {
}
复制代码
package com.spring.dao;
// dao的实现类
@Repository
public class UserDaoImpl implements UserDao {
}
复制代码
在service类中注入dao类的对象属性
package com.spring.service;
@Service
public class UserService {
//注入dao对象
@Autowired
private UserDao userDao;
}
复制代码
在dao类中注入JdbcTemplate对象
package com.spring.dao;
@Repository
public class UserDaoImpl implements UserDao {
//注入jdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
}
复制代码
增删改查
实体类
package com.spring.entiey;
public class User {
private Integer id;
private String name;
private Integer age;
private String email;
public User() {
}
public User(Integer id, String name, Integer age, String email) {
this.id = id;
this.name = name;
this.age = age;
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", email='" + email + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
复制代码
UserDao
package com.spring.dao;
public interface UserDao {
//添加的方法
void add(User user);
//修改的方法
void updateUser(User user);
//删除的方法
void deleteUser(int id);
//查询表记录数
int selectCount();
//查询返回对象
User findUserInfo(int id);
//查询返回集合
List<User> findAllUser();
//批量添加数据
void batchAddUser(List<Object[]> batchArgs);
}
复制代码
UserDaoImpl
package com.spring.dao;
@Repository
public class UserDaoImpl implements UserDao {
//注入jdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(User user) {
//用jdbcTemplate来操作数据库
String sql = "insert into userinfo values (?,?,?,?)";
Object[] args = {user.getId(),user.getName(),user.getAge(),user.getEmail()};
int update = jdbcTemplate.update(sql,args);
System.out.println(update);
}
@Override
public void updateUser(User user) {
String sql = "update userinfo set name=? where id=?";
Object[] args = {user.getName(),user.getId()};
int update = jdbcTemplate.update(sql, args);
System.out.println("修改了:"+update);
}
@Override
public void deleteUser(int id) {
String sql = "delete from userinfo where id=?";
int update = jdbcTemplate.update(sql, id);
System.out.println("删除了:"+update);
}
//查询表中的记录数
@Override
public int selectCount() {
String sql = "select count(*) from userinfo";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
return count;
}
//查询返回对象
@Override
public User findUserInfo(int id) {
String sql = "select * from userinfo where id=?";
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
return user;
}
//查询返回集合
@Override
public List<User> findAllUser() {
String sql = "select * from userinfo";
List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
return users;
}
//批量添加
@Override
public void batchAddUser(List<Object[]> batchArgs) {
String sql = "insert into userinfo values (?,?,?,?)";
int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
System.out.println(Arrays.toString(ints));
}
}
复制代码
UserService
package com.spring.service;
@Service
public class UserService {
//注入dao对象
@Autowired
private UserDao userDao;
//添加数据的方法
public void addUser(User user){
userDao.add(user);
}
//修改数据的方法
public void updateUser(User user){
userDao.updateUser(user);
}
//删除数据的方法
public void deleteUser(int id){
userDao.deleteUser(id);
}
//查询表中记录数
public int findCount(){
int count = userDao.selectCount();
return count;
}
//查询返回对象
public User findOne(int id){
User userInfo = userDao.findUserInfo(id);
return userInfo;
}
//查询返回集合
public List<User> findAll(){
return userDao.findAllUser();
}
//批量添加数据
public void batchAdd(List<Object[]> batchArgs){
userDao.batchAddUser(batchArgs);
}
}
复制代码
测试类
package com.spring.testdemo;
@SuppressWarnings({"all"})
public class TestSpringDemo {
//添加单条数据
@Test
public void testAdd(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
User user = new User();
user.setName("111");
user.setId(10);
user.setAge(18);
user.setEmail("shuaiwang2019@126.com");
System.out.println("user= "+user);
userService.addUser(user);
}
//修改单条数据
@Test
public void testUpdate(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
User user = new User();
user.setName("test");
user.setId(1);
System.out.println("user= "+user);
userService.updateUser(user);
}
//删除单条数据
@Test
public void testDelete(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
userService.deleteUser(1);
}
}
复制代码
package com.spring.testdemo;
public class TestJdbcTemplateSelect {
//查询记录数
@Test
public void testSelectCount(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
int count = userService.findCount();
System.out.println(count);
}
//查询返回对象
@Test
public void testSelectUserInfo(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
User userInfo = userService.findOne(10);
System.out.println(userInfo);
}
//查询返回集合
@Test
public void testSelectAll(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
List<User> users = userService.findAll();
System.out.println(users);
}
//批量添加
@Test
public void testBatchAdd(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
//要添加的集合
List<Object[]> batchArgs = new ArrayList<>();
Object[] o1 = {11,"java",24,"java@126.com"};
Object[] o2 = {12,"python",30,"python@126.com"};
Object[] o3 = {13,"c++",40,"c++@126.com"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
userService.batchAdd(batchArgs);
}
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4