日期:2014-05-16 浏览次数:20521 次
使用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