`
ccx20060810501
  • 浏览: 32487 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

一个经典的数据库访问层实现

阅读更多

这是本人通过各种优化技巧而实现的一个经典的数据库访问层:

数据源用的事DBCP开源包。

 

 

使用Spring框架提供的JdbcTemplate替代我写的数据库访问层是一个非常不错的选择,因为我差不多是按JdbcTemplate的思想写的,不过和它比起来还是有很大的差距,所以实际项目中我也是用JdbcTemplate,而不是自己写。

public class UserDaoSpringImpl implements UserDao {
	private SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(JdbcUtils.getMyDataSource());

	@Override
	public void addUser(User user) {
		String sql = "insert into user(name,password,birthday,money) values(:name,:password,:birthday,:money)";
		SqlParameterSource paramSource = new BeanPropertySqlParameterSource(user);
		KeyHolder keyHolder = new GeneratedKeyHolder();
		this.simpleJdbcTemplate.getNamedParameterJdbcOperations().update(sql, paramSource, keyHolder);
		user.setId(keyHolder.getKey().longValue());
	}

	@Override
	public void delete(User user) {
		String sql = "delete from user where id=?";
		Object[] args = new Object[] { user.getId() };
		this.simpleJdbcTemplate.update(sql, args);
	}

	@Override
	public User findUser(String loginName, String password) {
		String sql = "select name,password,birthday,money from user where name=? and password=?";
		Object[] args = new Object[] { loginName, password };
		User user = (User) this.simpleJdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), args);
		return user;
	}

	@Override
	public User getUser(int userId) {
		String sql = "select id,name,password,birthday,money from user where id=?";
		Object[] args = new Object[] { userId };
		User user = (User) this.simpleJdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), args);
		return user;
	}

	@Override
	public String getUserName(int id) {
		String sql = "select name from user where id=?";
		String name = (String) this.simpleJdbcTemplate.queryForObject(sql, String.class, id);
		return name;
	}
	@Override
	public void update(User user) {
		String sql = "update user set name=:name,password=:password,birthday:=birthday,money=:money where id=:id";
		SqlParameterSource paramterSource = new BeanPropertySqlParameterSource(user);
		this.simpleJdbcTemplate.update(sql, paramterSource);
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics