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));