天天看点

spring-JdbcTemplate用法笔记

12120171030

package com.tiger.dao;

import java.util.List;

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 com.tiger.bean.Book;
/**
 * 书籍dao
 * @author tiger
 * @date 2017年10月30日
 */
@Repository
public class BookDaoImpl implements IBookDao {
	@Autowired
	private JdbcTemplate jdbcTemplate;
	
	@Override
	public int insert(Book book) {
		String sql = "insert into book(name,author,price,date) values(?,?,?,?)";
		jdbcTemplate.update(sql, new Object[] {book.getName(),book.getAuthor(),book.getPrice(),book.getDate()});
		return 0;
	}

	@Override
	public int update(Book book) {
		String sql = "update book set name=?,author=?,price=?,date=? where id=?";
		jdbcTemplate.update(sql, new Object[] {book.getName(),book.getAuthor(),book.getPrice(),book.getDate(),book.getId()});
		return 0;
	}

	@Override
	public int remove(int id) {
		String sql = "delete from book where id = ?";
		jdbcTemplate.update(sql, new Object[] {id});
		return 0;
	}

	@Override
	public List
   
     query(Book book) {
		String sql="select * from book";
		List
    
      booList = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(Book.class));
		return booList;
	}
}

     

     

	
      
	
      

	
      
	
      

	
      
	
      
	
	
      
	
      
		
       
		
       
		
       
		
       
		
       
		
       
		
       
		
       
		
       
	
      

	
      
	
      
		

     
12120171030
1、增、删、改

   1)、int update(String sql):直接使用sql

   2)、int update(String sql,Object ...args):使用不定参数的方法和update(String sql,Object[]args)

   3)、int update(String sql,PreparedStatementSetter ps):PreparedStatementSetter是一个回调接口,定义了一个setValues方法。

2、查询

   1)、queryForObject:获取唯一的对象
       //rowMapper映射器(字段值与对象属性之间的映射)
       queryForObject(String sql, RowMapper
     
       rowMapper)
       //获取唯一对象的单个字段数据,requiredType是字段对应的数据类型
       queryForObject(String sql, Class
      
        requiredType)

   2)、queryForList:获取多个对象
       query:获取多个对象
       List
       
         query(String sql, RowMapper
        
          rowMapper) //智能映射功能:条件对象的属性名必须与表的字段名一致 jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(UserInfo.class));