日期:2014-05-16 浏览次数:20622 次
使用Spring 的JDBC
先创建表:
DROP TABLE IF EXISTS `springjdbc`.`t_people`; CREATE TABLE `springjdbc`.`t_people` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, `birthDay` datetime DEFAULT NULL, `sex` tinyint(1) DEFAULT NULL, `weight` double DEFAULT NULL, `height` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
?
再创建实体对象:
com.spring305.jdbc.po.People.java
public class People implements Serializable {
private static final long serialVersionUID = -8692237020492316757L;
private int id;
private String name;
private Date birthDay;
private Boolean sex;
private Double weight;
private float height;
public People() {
super();
}
public People(int id, String name, Date birthDay, Boolean sex,
Double weight, float height) {
super();
this.id = id;
this.name = name;
this.birthDay = birthDay;
this.sex = sex;
this.weight = weight;
this.height = height;
}
...
}
?DAO接口:
com.spring305.jdbc.dao.PeopleDao.java
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.spring305.jdbc.page.CurrentPage;
import com.spring305.jdbc.po.People;
/**
* DAO接口
* @author ZhengChao
*
*/
public interface PeopleDao {
/**
* 创建数据库表结构
* @param sql
* @return
*/
void doCreateTable(String sql);
/**
* 保存对象
* @param p
*/
void doSaveObj(People p);
/**
* 通过主键删除对象
* @param id
*/
void doDeleteObj(int id);
/**
* 更新对象
* @param p
*/
void doUpdateObj(People p);
/**
* 通过主键得到对象
* @param id
* @return
*/
Serializable getObjByID(int id);
/**
* 通过主键得到日期类属性
* @param id
* @return
*/
Date getBirthDay(int id);
/**
* 通过主键得到名字属性
* @param id
* @return
*/
String getNameAttri(int id);
/**
* 通过主键拿到对象集合
* @param id
* @return
*/
List<People> getObjsByID(int id);
/**
* 取总和
* @return
*/
int getCountEntites();
/**
* 得到对象的集合
* @return
*/
List<Map<String, Object>> getList();
/**
* 分页查找
* @param pageNo
* @param pageSize
* @param id
* @return
* @throws SQLException
*/
CurrentPage<People> getPeoplePage(final int pageNo, final int pageSize,int id) throws SQLException;
/**
* 使用NamedParameterJdbcTemplate命名参数
* @param id
* @return
*/
int getNamedParameterJdbcCounts(int id);
/**
* 得到自动生成的主键
* @return
*/
int getAutoIncrementKey();
/**
* 批处理
* @param actors
* @return
*/
int[] batchUpdate(final List<People> actors);
}
?
实现类:
com.spring305.jdbc.dao.impl.PeopleDaoImpl.java
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import com.spring305.jdbc.dao.P