开源框架spring学习之道:spring对JDBC的支持(二)
2013-08-04 11:33
579 查看
Java的代码
API的使用。
Java的代码
包 com.zxf.domain;
导入 java.util.Date的;
/ **
* @作者z_xiaofei168
* /
公共 类 帐户{
私人 长的ID;
私人 弦乐LOGINNAME;
私人 弦乐密码;
私人 弦乐电子邮件;
私人 弦乐手机;
私人 日期registedTime;
/ /以下省略所以的设置和获取方法
}
3.1 ,使用的JdbcTemplate类
Java的代码
包 com.zxf.dao;
进口 的java.util.List;
导入 com.zxf.domain.Account;
/ **账户的DAO接口* /
公共 接口 AccountDao {
/ **新增账户* /
无效 创建(帐户ACC);
/ **删除指定账户* /
无效 删除(帐号ACC);
/ **更新账户中* /
无效 更新(帐户ACC);
/ **查询指定ID的账户* /
findById帐户(隆ID);
/ **查询所有账户* /
列表<Account>的findAll();
}
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
进口 的java.util.List;
导入 了javax.sql.DataSource;
进口 org.springframework.jdbc.core.JdbcTemplate;
导入 org.springframework.jdbc.core.RowMapper;
导入 com.zxf.domain.Account;
/ **
* AccountDao实现类
*使用的JdbcTemplate来实现
* /
公共 类实现 AccountDao的{
私人 的JdbcTemplate的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
JdbcTemplate的= 新的 JdbcTemplate(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)VALUES(????,NOW())” ;
Object []的paramValues = {acc.getPassword acc.getLoginname(),(),
acc.getEmail(),acc.getCellphone()};
jdbcTemplate.update(SQL,paramValues);
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE WHERE ID =?”帐户;
paramValues对象[] = {acc.getId()};
jdbcTemplate.update(SQL,paramValues);
}
公共 无效 更新(帐户ACC){
弦乐的sql = “UPDATE帐户SET LOGINNAME的=?,密码=?,电子邮件=?”
+ “手机=?WHERE ID =?” ;
Object []的paramValues = {acc.getPassword acc.getLoginname(),(),
acc.getCellphone acc.getEmail(),(),acc.getId()};
jdbcTemplate.update(SQL,paramValues);
}
@ SuppressWarnings (“未选中” )
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
返回 jdbcTemplate.query(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
Object []的paramValues = {ID};
返回 (帐户)的JdbcTemplate。
queryForObject(SQL,paramValues,: 新 AccountRowMapper());
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper 实现 RowMapper的{
公共的 对象mapRow(结果集RS, INT ROWNUM) 抛出 的SQLException
{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
3.2 ,使用NamedParameterJdbcTemplate类类
Java的代码
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
导入 的java.util.HashMap;
进口 的java.util.List;
导入 的java.util.Map;
导入 了javax.sql.DataSource;
导入 org.springframework.jdbc.core.RowMapper;
导入 org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
导入 org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
进口 org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
导入 org.springframework.jdbc.core.namedparam.SqlParameterSource;
导入 com.zxf.domain.Account;
/ **
*使用NamedParameterJdbcTemplate类来实现AccountDao接口
* /
公共 类实现 AccountDao的{
/ /带命名参数功能的JDBC模板类实例
私人 NamedParameterJdbcTemplate类的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
的JdbcTemplate = 新 NamedParameterJdbcTemplate类(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)”
+ “VALUES(登录名,密码,电子邮件,手机,NOW())” ;
/ /使用一个Bean的对象的属性值作为命名参数的值
SqlParameterSource的namedParameters =
新 组件属性SQL参数源(ACC);
这jdbcTemplate.update(SQL,namedParameters);
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE FROM帐户WHERE ID =:ID” ;
/ /使用指定的值来代替命名参数
SqlParameterSource的namedParameters =
新 MapSqlParameterSource(“ID” ,acc.getId());
这jdbcTemplate.update(SQL,namedParameters);
}
公共 无效 更新(帐户ACC){
字符串的sql = “ 更新账户的SET LOGINNAME =:登录名。”
+ “密码:密码,电子邮件:电子邮件,”
+ 手机=手机WHERE ID =:ID“ ;
/ /使用地图对象中的键/值对来代替多个命名参数的实际值
地图<String, namedParameters对象> = 新 的HashMap <String,对象>();
namedParameters.put( “ 登录名” ,acc.getLoginname());
namedParameters.put( “ 密码” ,acc.getPassword());
namedParameters.put( “ 电子邮件” ,acc.getEmail());
namedParameters.put( “ 手机” ,acc.getCellphone());
namedParameters.put(“ID” ,acc.getId());
这jdbcTemplate.update(SQL,namedParameters);
}
@ SuppressWarnings (“未选中” )
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
/ /通过getJdbcOperations()来访问只有在使用JdbcTemplate中拥有的功能
返回 的JdbcTemplate
getJdbcOperations()
查询(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
/ /使用指定的值来代替命名参数
SqlParameterSource的namedParameters =
新 MapSqlParameterSource( “ 身份证” ,身份证);
返回 (帐户)的JdbcTemplate
查询(SQL,namedParameters 新 AccountRowMapper());
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper 实现 RowMapper的{
公共的 对象mapRow(结果集RS, INT ROWNUM) 抛出 的SQLException
{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
3.3 ,使用SimpleJdbcTemplate类类
Java的代码
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
进口 的java.util.List;
导入 了javax.sql.DataSource;
导入 org.springframework.jdbc.core.simple.ParameterizedRowMapper;
进口 org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
导入 com.zxf.domain.Account;
/ **
*使用SimplateJdbcTemplate来实现AccountDao接口
* /
公共 类实现 AccountDao的{
私人 SimpleJdbcTemplate类的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
的JdbcTemplate = 新 SimpleJdbcTemplate类(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)VALUES(????,NOW())” ;
这jdbcTemplate.update(SQL acc.getLoginname()
acc.getPassword(),
acc.getEmail(),
acc.getCellphone());
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE WHERE ID =?”帐户;
jdbcTemplate.update(SQL,acc.getId());
}
公共 无效 更新(帐户ACC){
弦乐的sql = “UPDATE帐户SET LOGINNAME的=?,密码=?,电子邮件=?”
+ “手机=?WHERE ID =?” ;
这jdbcTemplate.update(SQL acc.getLoginname()
acc.getPassword(),
acc.getEmail(),
acc.getCellphone(),
acc.getId());
}
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
返回 jdbcTemplate.query(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
返回 jdbcTemplate.queryForObject(SQL, 新 AccountRowMapper(),身份证);
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper
实现 ParameterizedRowMapper的<Account> {
公众的 帐户方法mapRow(结果集RS, INT ROWNUM)
抛出 SQLException异常{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
包 com.zxf.service;
进口 的java.util.List;
导入 com.zxf.dao.AccountDao;
导入 com.zxf.domain.Account;
/ **
*帐户业务逻辑类
* @作者z_xiaofei168
* /
公共 类 的AccountService {
私人 AccountDao accountDao;
/ / setter方法注入
公共的 无效 setAccountDao(AccountDao accountDao){
accountDao = accountDao;
}
公共 无效 创建(帐户ACC){
accountDao.create(ACC);
}
公共 无效 删除(帐户ACC){
accountDao.delete(ACC);
}
公共 无效 更新(帐户ACC){
accountDao.update(ACC);
}
公共 帐户findById(长ID){
返回 accountDao.findById(ID);
}
公共 列表<Account>的findAll(){
返回 accountDao.findAll();
}
}
API的使用。
Java的代码
包 com.zxf.domain;
导入 java.util.Date的;
/ **
* @作者z_xiaofei168
* /
公共 类 帐户{
私人 长的ID;
私人 弦乐LOGINNAME;
私人 弦乐密码;
私人 弦乐电子邮件;
私人 弦乐手机;
私人 日期registedTime;
/ /以下省略所以的设置和获取方法
}
3.1 ,使用的JdbcTemplate类
Java的代码
包 com.zxf.dao;
进口 的java.util.List;
导入 com.zxf.domain.Account;
/ **账户的DAO接口* /
公共 接口 AccountDao {
/ **新增账户* /
无效 创建(帐户ACC);
/ **删除指定账户* /
无效 删除(帐号ACC);
/ **更新账户中* /
无效 更新(帐户ACC);
/ **查询指定ID的账户* /
findById帐户(隆ID);
/ **查询所有账户* /
列表<Account>的findAll();
}
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
进口 的java.util.List;
导入 了javax.sql.DataSource;
进口 org.springframework.jdbc.core.JdbcTemplate;
导入 org.springframework.jdbc.core.RowMapper;
导入 com.zxf.domain.Account;
/ **
* AccountDao实现类
*使用的JdbcTemplate来实现
* /
公共 类实现 AccountDao的{
私人 的JdbcTemplate的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
JdbcTemplate的= 新的 JdbcTemplate(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)VALUES(????,NOW())” ;
Object []的paramValues = {acc.getPassword acc.getLoginname(),(),
acc.getEmail(),acc.getCellphone()};
jdbcTemplate.update(SQL,paramValues);
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE WHERE ID =?”帐户;
paramValues对象[] = {acc.getId()};
jdbcTemplate.update(SQL,paramValues);
}
公共 无效 更新(帐户ACC){
弦乐的sql = “UPDATE帐户SET LOGINNAME的=?,密码=?,电子邮件=?”
+ “手机=?WHERE ID =?” ;
Object []的paramValues = {acc.getPassword acc.getLoginname(),(),
acc.getCellphone acc.getEmail(),(),acc.getId()};
jdbcTemplate.update(SQL,paramValues);
}
@ SuppressWarnings (“未选中” )
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
返回 jdbcTemplate.query(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
Object []的paramValues = {ID};
返回 (帐户)的JdbcTemplate。
queryForObject(SQL,paramValues,: 新 AccountRowMapper());
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper 实现 RowMapper的{
公共的 对象mapRow(结果集RS, INT ROWNUM) 抛出 的SQLException
{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
3.2 ,使用NamedParameterJdbcTemplate类类
Java的代码
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
导入 的java.util.HashMap;
进口 的java.util.List;
导入 的java.util.Map;
导入 了javax.sql.DataSource;
导入 org.springframework.jdbc.core.RowMapper;
导入 org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
导入 org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
进口 org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
导入 org.springframework.jdbc.core.namedparam.SqlParameterSource;
导入 com.zxf.domain.Account;
/ **
*使用NamedParameterJdbcTemplate类来实现AccountDao接口
* /
公共 类实现 AccountDao的{
/ /带命名参数功能的JDBC模板类实例
私人 NamedParameterJdbcTemplate类的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
的JdbcTemplate = 新 NamedParameterJdbcTemplate类(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)”
+ “VALUES(登录名,密码,电子邮件,手机,NOW())” ;
/ /使用一个Bean的对象的属性值作为命名参数的值
SqlParameterSource的namedParameters =
新 组件属性SQL参数源(ACC);
这jdbcTemplate.update(SQL,namedParameters);
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE FROM帐户WHERE ID =:ID” ;
/ /使用指定的值来代替命名参数
SqlParameterSource的namedParameters =
新 MapSqlParameterSource(“ID” ,acc.getId());
这jdbcTemplate.update(SQL,namedParameters);
}
公共 无效 更新(帐户ACC){
字符串的sql = “ 更新账户的SET LOGINNAME =:登录名。”
+ “密码:密码,电子邮件:电子邮件,”
+ 手机=手机WHERE ID =:ID“ ;
/ /使用地图对象中的键/值对来代替多个命名参数的实际值
地图<String, namedParameters对象> = 新 的HashMap <String,对象>();
namedParameters.put( “ 登录名” ,acc.getLoginname());
namedParameters.put( “ 密码” ,acc.getPassword());
namedParameters.put( “ 电子邮件” ,acc.getEmail());
namedParameters.put( “ 手机” ,acc.getCellphone());
namedParameters.put(“ID” ,acc.getId());
这jdbcTemplate.update(SQL,namedParameters);
}
@ SuppressWarnings (“未选中” )
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
/ /通过getJdbcOperations()来访问只有在使用JdbcTemplate中拥有的功能
返回 的JdbcTemplate
getJdbcOperations()
查询(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
/ /使用指定的值来代替命名参数
SqlParameterSource的namedParameters =
新 MapSqlParameterSource( “ 身份证” ,身份证);
返回 (帐户)的JdbcTemplate
查询(SQL,namedParameters 新 AccountRowMapper());
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper 实现 RowMapper的{
公共的 对象mapRow(结果集RS, INT ROWNUM) 抛出 的SQLException
{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
3.3 ,使用SimpleJdbcTemplate类类
Java的代码
包 com.zxf.dao;
进口 的java.sql.ResultSet;
进口 的java.sql.SQLException;
导入 的java.sql.Timestamp;
导入 java.util.Date的;
进口 的java.util.List;
导入 了javax.sql.DataSource;
导入 org.springframework.jdbc.core.simple.ParameterizedRowMapper;
进口 org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
导入 com.zxf.domain.Account;
/ **
*使用SimplateJdbcTemplate来实现AccountDao接口
* /
公共 类实现 AccountDao的{
私人 SimpleJdbcTemplate类的JdbcTemplate;
公共 无效 的setDataSource(DataSource的数据源){
的JdbcTemplate = 新 SimpleJdbcTemplate类(数据源);
}
公共 无效 创建(帐户ACC){
弦乐的sql = “INSERT INTO帐户(登录名,密码,电子邮件,”
+ “手机,registed_time)VALUES(????,NOW())” ;
这jdbcTemplate.update(SQL acc.getLoginname()
acc.getPassword(),
acc.getEmail(),
acc.getCellphone());
}
公共 无效 删除(帐户ACC){
字符串的sql = “DELETE WHERE ID =?”帐户;
jdbcTemplate.update(SQL,acc.getId());
}
公共 无效 更新(帐户ACC){
弦乐的sql = “UPDATE帐户SET LOGINNAME的=?,密码=?,电子邮件=?”
+ “手机=?WHERE ID =?” ;
这jdbcTemplate.update(SQL acc.getLoginname()
acc.getPassword(),
acc.getEmail(),
acc.getCellphone(),
acc.getId());
}
公共 列表<Account>的findAll(){
字符串的sql = “SELECT * FROM帐户” ;
返回 jdbcTemplate.query(SQL,: 新 AccountRowMapper());
}
公共 帐户findById(长ID){
字符串的sql = “SELECT * FROM帐户WHERE ID =?” ;
返回 jdbcTemplate.queryForObject(SQL, 新 AccountRowMapper(),身份证);
}
/ /把结果集封装成帐户对象的包装类
私人 静态 最终 类 AccountRowMapper
实现 ParameterizedRowMapper的<Account> {
公众的 帐户方法mapRow(结果集RS, INT ROWNUM)
抛出 SQLException异常{
帐户ACC = 新 帐户();
acc.setId(rs.getLong(“ID” ));
acc.setLoginname(rs.getString(登录名“ ));
acc.setPassword(rs.getString( “ 密码” ));
acc.setEmail(rs.getString( “ 电子邮件” ));
acc.setCellphone(rs.getString( “ 手机” ));
时间戳温度= rs.getTimestamp(“registed_time” );
(温度!= 0 ){
(新 acc.setRegistedTime的 日期(temp.getTime()));
}
返回 ACC;
}
}
}
包 com.zxf.service;
进口 的java.util.List;
导入 com.zxf.dao.AccountDao;
导入 com.zxf.domain.Account;
/ **
*帐户业务逻辑类
* @作者z_xiaofei168
* /
公共 类 的AccountService {
私人 AccountDao accountDao;
/ / setter方法注入
公共的 无效 setAccountDao(AccountDao accountDao){
accountDao = accountDao;
}
公共 无效 创建(帐户ACC){
accountDao.create(ACC);
}
公共 无效 删除(帐户ACC){
accountDao.delete(ACC);
}
公共 无效 更新(帐户ACC){
accountDao.update(ACC);
}
公共 帐户findById(长ID){
返回 accountDao.findById(ID);
}
公共 列表<Account>的findAll(){
返回 accountDao.findAll();
}
}
相关文章推荐
- 开源框架spring学习之道:spring对JDBC的支持(一)
- [学习小结]Spring对JDBC的支持
- Spring学习之对JDBC的支持
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(2)-JDBC支持
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(2)-JDBC支持
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
- Spring 学习之路(十): Spring 中对 jdbc 的支持
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(2)-JDBC支持
- 框架学习之Spring 第四节 Spring集成JDBC组件开发
- Spring框架学习笔记(9)——Spring对JDBC的支持
- 一步一步学习开源框架-spring
- Spring 4 官方文档学习(十一)Web MVC 框架之multipart(文件上传)支持
- 框架学习之Spring 第四节 Spring集成JDBC组件开发
- 支持移动端深度学习的几种开源框架
- [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction
- 开源框架spring学习之道:事务管理的深刻理解
- 开源框架Spring学习之道:IoC的深刻理解
- 开源框架spring学习之道:AOP的深刻理解
- spring学习总结(十一):spring 对 JDBC 的支持
- spring对JDBC的支持 学习笔记