您的位置:首页 > 编程语言 > Java开发

开源框架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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: