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