Java如何使用Spring Jdbc框架操作MySQL语句?

Spring Jdbc知识点

1.导入需要用到的jar包
在这里插入图片描述
2.在连接数据库的Util中写一个方法,返回数据源:dataSource

	public static DataSource getDataSource() {
			return dataSource;
		}

3.创建JdbcTemplate对象。

JdbcTemplate template = new JdbcTemplate(Util.getDataSource());

4.调用JdbcTemplate中的方法来完成crud操作
(1)update():执行DML语句。增、删、改语句
删除为例子:

        String sql = "delete from emp where id=?";
		int count = template.update(sql, 1015);

		* 多个占位符?
		String sql = "insert into tb_user(username, `password`) values(?,?)";
		//创建Object数组存值
		Object[] obj = new Object[] {
				user.getUserName(), 
				user.getPassword()
		};
		return template.update(sql, obj);

(2)查询的四种方法:(按需求选择)

  1. query():查询结果,将结果封装为JavaBean对象
      
        方式一:
        String sql = "select * from emp";
        //调用RowMapper<User>接口,重写mapRow(ResultSet rs, int index) 方法,这个方法自动进行循环赋值操作
		List<User> list = template.query(sql, new RowMapper<User>(){
           @Override
           public User mapRow(ResultSet rs, int index) throws SQLException{
               User us = new User();
               us .setId(rs.getInt("id"));
               us .setEname(rs.getString("ename"));
               us .setJob_id(rs.getInt("job_id"));
               ……
               return us ;
           }
        });


		方式二:
		String sql = "select * from emp";
		//调用BeanPropertyRowMapper<User>(Emp.class)方法一步完成操作
		List<User> list = template.query(sql, new BeanPropertyRowMapper<>(User.class));
  1. queryForObject:查询结果,将结果封装为对象(一般用于查询出只有一行一列的值,比如统计记录总数), 一般用于聚合函数的查询。
String sql = "select count(*) from emp";
		Long total = template.queryForObject(sql, Long.class);
  1. queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合。
    注意:这个方法查询的结果集长度只能是1。
String sql = "select * from emp where id=?";
		Map<String, Object> map = template.queryForMap(sql, 1001);
  1. queryForList():查询结果将结果集封装为list集合。
    注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中。
String sql ="select * from emp";
		List<Map<String, Object>> list = template.queryForList(sql);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值