JdbcTemplate操作数据库

概述和准备工作

  • 1、什么是JdbcTemplate
    • (1)spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作
  • 2、准备工作
    • (1)引入相关依赖
      依赖包
    • (2)在spring配置文件中配置数据库连接池的配置,配置JdbcTemplate对象,并且注入dataSource
      配置jdbcTemplate
    • 创建service类,创建dao类,在dao类注入jdbcTemplate对象
//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
	}


JdbcTemplate 操作数据

添加操作

  • 1、对应数据库创建相应的实体对象
    实体类

  • 2、在Service和Dao中增加添加方法

//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
		
		public void add(User user){
			userdao.add(user);
		}
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
		
		public void add(User user){
			//update(String sql, Object... obj) (增删改都是使用这个方法)
			//1、创建sql语句(修改和删除方法一致,主要不同是sql语句)
			String sql = "insert into user values (?,?,?)";
			//2、调用方法实现
			//int  update = jdbcTemplate.update(sql,user.getName,user.getYear,user.id);
			String[] users = {user.getName,user.getYear,user.getId};
			int  update = jdbcTemplate.update(sql,users);
		}
	}


  • 3、在Service和Dao中增加查询单个值
//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
		
		public int findCount(){
			int args = userdao.selectCount();
			return args;
		}
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
		
		public int selectCount(){
			
			//1、创建sql语句
			String sql = "select count(1)  from user ";
			//2、调用方法实现	queryObject(String sql, Class<T> requiret),参数一:SQL语句,参数二:返回参数的类型 
			int  set = jdbcTemplate.queryObject(sql,users);
			return set;
		}
	}

  • 3、在Service和Dao中增加查询返回单个对象
//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
		
		public User findUser(){
			User user = userdao.selectUser();
			return user;
		}
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
		
		public User selectUser(){
			
			//1、创建sql语句
			String sql = "select *  from user where id = ? ";
			//2、调用方法实现	queryFowMapperObject(String sql,RowMapper<T> rowMapper, object... args ),
			//参数一:SQL语句,
			//参数二:RowMapper(是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装),
			//参数三:sql语句值 
			User user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),1);
			return user;
		}
	}

  • 在Service和Dao中增加查询返回对象集合
//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
		
		public List<User> findAll(){
			List<User> users = userdao.selectUserAll();
			return users;
		}
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
		
		public List<User> selectUserAll(){
			
			//1、创建sql语句
			String sql = "select *  from user ";
			//2、调用方法实现	query(String sql,RowMapper<T> rowMapper, object... args ),
			//参数一:SQL语句,
			//参数二:RowMapper(是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装),
			//参数三:sql语句值 
			List<User> users = jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class));
			return users;
		}
	}

  • 在Service和Dao中实现批量添加、删除、修改
//在配置文件中需要开启注解扫描
...
//service
	@Service
	public class UserService{
		@Autowired
		private UserDao userdao;
		
		public void batchAdd(List<Object[]> batchArgs){
			userdao.batchAdd(batchArgs);
		}
	}
//dao
	@Repository
	public class UserDao{
		@Autowired  //注入jdbcTemplate
		private JdbcTemplate jdbcTemplate;
		
		public void batchAdd(List<Object[]> batchArgs){
			
			//1、创建sql语句(修改和删除方法一致,主要不同是sql语句)
			String sql = "insert into user values (?,?,?)";
			//2、调用方法实现	batchUpdate(String sql,List<Object[]> batchArgs),
			//参数一:SQL语句,
			//参数二:List集合数组,添加多条记录
			int[] ints = jdbcTemplate.batchUpdate(sql,batchArgs);
		}
	}

批量添加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值