1. 程式人生 > >spring-JdbcTemplate用法筆記

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;
	}
}
<?xml version="1.0" encoding="UTF-8"?>

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