Spring实现对数据库的增删改查操作
程序员文章站
2022-03-02 22:22:20
...
Spring实现增删改查操作
JDBC连接
配置xml文件
<!--创建数据库连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="username" value="root"/>
<property name="password" value="000000"/>
<property name="url" value="jdbc:mysql:///user_db"/>
</bean>
<!--创建JdbcTemplate对象-->
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 开启组件扫描 -->
<context:component-scan base-package="com.xzh.Spring5.JDBC"/>
编写接口实现类 实现增删改查、批量增删改查、查返回对象
JavaBean 和接口 还有service 就省略不写了
核心代码 就是Dao的实现类:如下
DaoImpl类
package com.xzh.Spring5.JDBC.DAO;
import com.xzh.Spring5.JDBC.entity.User;
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 java.util.Arrays;
import java.util.List;
/**
* @Author XuZhuHong
* @CreateTime 2021/5/19 18:58
*/
@Repository//UserDaoImpl userDaoImpl=new UserDaoImpl()
public class UserDaoImpl implements UserDao {
@Autowired//根据类型注入 等同于JdbcTemplate jdbcTemplate=new JdbcTemplate()
private JdbcTemplate jdbcTemplate;
@Override//单条添加
public void add(User user) {
String sql = "insert into t_user values(?,?,?)";
//把对应的数据封装到一个数组中
Object[] args = {user.getUserId(), user.getUsername(), user.getUstatus()};
int update = jdbcTemplate.update(sql, args);
System.out.println("添加了" + update);
}
@Override//单条修改
public void update(User user) {
String sql = "UPDATE t_user SET username=?,ustatus=? WHERE user_id=?";
//把对应的数据封装到一个数组中
Object[] args = {user.getUsername(), user.getUstatus(), user.getUserId()};
int update = jdbcTemplate.update(sql, args);
System.out.println("更新了" + update);
}
@Override//单条删除
public void delete(String id) {
String sql = "delete from t_user WHERE user_id=?";
int update = jdbcTemplate.update(sql, id);
System.out.println("删除了" + update);
}
@Override//查询总数
public int selectCount() {
String sql = "select count(*) from t_user";
return jdbcTemplate.queryForObject(sql, Integer.class);//后面这个Integer.class是设置返回类型
}
@Override//把查询到的数据封装到JavaBean中
public User findBean(String s) {
String sql = "select * from t_user WHERE user_id=?";
//new BeanPropertyRowMapper<>(User.class)这个是把查询到的sql的数据封装回Bean
//需要注意的是 自己的Bean里面必须要有 set方法 和 空参构造器 可以看看源码
return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), s);
}
@Override//把查询到的数据封装到List中 类型为User
public List< User > findListBean() {
String sql = "select * from t_user";
//和上面的一样 少了一个参数 就会返回集合 可以看看源码
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
@Override//批量添加
public void batchAdd(List< Object[] > userList) {
String sql = "insert into t_user values(?,?,?)";
//这个batchUpdate的底层就是 把list遍历 然后遍历一次就执行一次sql语句
int[] ints = jdbcTemplate.batchUpdate(sql, userList);
System.out.println("添加了成功" + ints);
}
@Override//批量更改
public void batchUpdata(List< Object[] > userList) {
String sql = "UPDATE t_user SET username=?,ustatus=? WHERE user_id=?";
//这个batchUpdate的底层就是 把list遍历 然后遍历一次就执行一次sql语句
int[] ints = jdbcTemplate.batchUpdate(sql, userList);
System.out.println("修改成功了" + ints);
}
@Override//批量删除
public void batchDelete(List< Object[] > userList) {
String sql = "delete from t_user WHERE user_id=?";
//这个batchUpdate的底层就是 把list遍历 然后遍历一次就执行一次sql语句
int[] update = jdbcTemplate.batchUpdate(sql, userList);
;
System.out.println("删除成功了" + Arrays.toString(update));
}
}
测试类
测试类 这里因为用的xml文件配置
所以实例化是 ClassPathXmlApplicationContext类
package com.xzh.Spring5.JDBC;
import com.xzh.Spring5.JDBC.Service.UserService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.ArrayList;
import java.util.List;
/**
* @Author XuZhuHong
* @CreateTime 2021/5/19 19:16
*/
public class TestJdbc {
@Test
public void testAdd() {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("JdbcBean.xml");
UserService userService = classPathXmlApplicationContext.getBean("userService", UserService.class);
// User user=new User("1", "xzh", "aaa");
//添加一条记录
// userService.add(user);
// //根据id修改记录
// userService.update(new User("1", "zzwwwz", "aaa"));
//
// //根据id删除一条记录
// userService.delete("1");
//查询有几条记录
// System.out.println("查询到"+userService.selectCount());
//根据id查询后返回对象
// System.out.println(userService.findBean("1"));
//查询后返回对象集合
// for (User user : userService.findListBean()) {
// System.out.println(user);
// }
//批量操作(添加)
// List<Object[]> UserList=new ArrayList<>();
// Object[] o1={"3","Java","c"};
// Object[] o2={"4","JavaWeb","d"};
// Object[] o3={"5","Spring","e"};
//
// UserList.add(o2);
// UserList.add(o1);
// UserList.add(o3);
// userService.batchAdd(UserList);
//批量操作(修改)
// List< Object[] > UserList = new ArrayList<>();
// Object[] o1 = { "Java1", "c","3"};
// Object[] o2 = { "JavaWeb1", "d","4"};
// Object[] o3 = { "Spring1", "e","5"};
// UserList.add(o2);
// UserList.add(o1);
// UserList.add(o3);
//
// userService.batchUpdata(UserList);
//批量删除
List< Object[] > UserList = new ArrayList<>();
Object[] o1 = {"3"};
Object[] o2 = {"4"};
Object[] o3 = {"5"};
UserList.add(o2);
UserList.add(o1);
UserList.add(o3);
userService.batchDelete(UserList);
}
}
上一篇: Handler的那些事