见证Spring Jdbc的强大

Spring 不仅仅是一个IoC container。

其提供的Spring Jdbc提供了一层对jdbc很薄的封装,功能却是异常强大。

 

1、Template模式的使用,使我们只关心,sql, 输入参数,输出映射。

2、new BeanPropertySqlParameterSource(t) 直接把bean转成输入参数。

3、ParameterizedBeanPropertyRowMapper.newInstance(UserInfo.class)直接将bean转成输出映射。

4、一个dao根据输入参数不同,动态生成多条sql语句。很有一点ibatis的味道。

5、学习曲线低,会sql和jdbc的可以直接写。适合“你请到了只会写jsp和sql的极品,又想让他明天开始干活..... ”

 

详见:http://wiki.springside.org.cn/display/SpringSide3/ExtremeWeb

 

  1. package org.springside.examples.extremeweb.service;
  2. import java.util.Collection;
  3. import org.springframework.stereotype.Service;
  4. import org.springframework.transaction.annotation.Transactional;
  5. import org.springside.examples.extremeweb.entity.User;
  6. import org.springside.examples.extremeweb.util.SimpleJdbcSupport;
  7. @Service
  8. @Transactional
  9. public class UserService extends SimpleJdbcSupport {
  10.     private static String QUERY_ALL_USER = "select name,login_name,password from users";
  11.     private static String QUERY_USER = "select name,login_name,password from users where login_name=?";
  12.     private static String INSERT_USER = "insert into users (name,login_name,password) values(:name,:loginName,:password)";
  13.     private static String DELETE_USER = "delete from users where login_name=?";
  14.     private static String DELETE_USER_ROLES = "delete from users_roles where user_id in (select id from users where login_name=?)";
  15.     @Transactional(readOnly = true)
  16.     public Collection<User> getAllUser() {
  17.         return jdbcTemplate.query(QUERY_ALL_USER, resultBeanMapper(User.class));
  18.     }
  19.     public User getUser(String loginName) {
  20.         return jdbcTemplate.queryForObject(QUERY_USER, resultBeanMapper(User.class), loginName);
  21.     }
  22.     public void createUser(User user) {
  23.         jdbcTemplate.update(INSERT_USER, paramBeanMapper(user));
  24.     }
  25.     public void deleteUser(String loginName) {
  26.         jdbcTemplate.update(DELETE_USER_ROLES, loginName);
  27.         jdbcTemplate.update(DELETE_USER, loginName);
  28.     }
  29. }

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值