Spring实现对数据库的增删改查操作Spring实现增删改查操作
JDBC连接
配置xml⽂件
gcc中的genotype<!--创建数据库连接池-->
表单代码模板
<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.JdbcTemplate"id="jdbcTemplate">
<property name="dataSource"ref="dataSource"/>
</bean>
<!-- 开启组件扫描 -->
<component-scan base-package="h.Spring5.JDBC"/>
编写接⼝实现类实现增删改查、批量增删改查、查返回对象
JavaBean 和接⼝ 还有service 就省略不写了
核⼼代码 就是Dao的实现类:如下
DaoImpl类
h.Spring5.JDBC.DAO;
h.ity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.BeanPropertyRowMapper;
import org.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 ={UserId(), Username(), Ustatus()};
int update = jdbcTemplate.update(sql, args);
System.out.println("添加了"+ update);
}
@Override//单条修改
mysql安装路径查询
@Override//单条修改
public void update(User user){
String sql ="UPDATE t_user SET username=?,ustatus=? WHERE user_id=?";
//把对应的数据封装到⼀个数组中
Object[] args ={Username(), Ustatus(), UserId()};
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("删除成功了"+ String(update));
}
}
测试类
测试类 这⾥因为⽤的xml⽂件配置
所以实例化是 ClassPathXmlApplicationContext类
h.Spring5.JDBC;
h.Spring5.JDBC.Service.UserService;
import org.junit.Test;
import t.support.ClassPathXmlApplicationContext;
import java.util.ArrayList;
import java.util.List;
/**
* @Author XuZhuHong
linux里grep的用法* @CreateTime 2021/5/19 19:16
*/
public class TestJdbc {
@Test
public void testAdd(){
ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("l");        UserService userService = Bean("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);mysql面试题 增删改查
//        UserList.add(o3);
//
//        userService.batchUpdata(UserList);
//        userService.batchUpdata(UserList);
html中黑的代码//批量删除
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);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。