package org.oms.spring.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.oms.spring.model.Group;
import org.oms.spring.model.User;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
@Repository("userJdbcDao")
public class UserDao implements IUserDao {
private JdbcTemplate JdbcTemplate;
/**
* Set the JDBC DataSource to obtain connections from.
*/
@Resource
public void setDataSource(DataSource dataSource) {
JdbcTemplate = new JdbcTemplate(dataSource);
}
@Override
public void add(User user, int gid) {
JdbcTemplate
.update("insert into t_user(username,password,gid,age,birthday,createdate) value (?,?,?,?,?,?)",
user.getUsername(), user.getPassword(), gid,
user.getAge(), user.getBirthDay(), user.getCreateDate());
}
@Override
public void update(User user, int gid) {
JdbcTemplate
.update("update t_user set username=?,password=?,gid=?,age=?,birthday=?,createdate=? where id=?",
user.getUsername(), user.getPassword(), gid,
user.getAge(), user.getBirthDay(),
user.getCreateDate(), user.getId());
}
@Override
public void delete(int id) {
JdbcTemplate.update("delete from t_user where id =?", id);
}
@Override
public User load(int id) {
String sql="select t1.id uid ,t1.*,t2.* from t_user t1 left join `group` t2 on (t1.gid=t2.id) where t1.id=?";
/**
* 第一个参数是SQL语句
* 第二个参数是SQL语句中参数值,需要传入一个对象数组
* 第三个是一个RowMapper,这个RowMapper可以完成一个对象和数据库字段的对应,实现这个RowMapper需要实现mapRow方法,
* 在这个mapRow方法中有rs这个参数,通过rs可以有效的获取数据库的字段
* 如果这个方法在DAO中会被重复使用,建议通过内部类来解决,而不要使用匿名的内部类
*/
User u=(User)JdbcTemplate.queryForObject(sql,new Object[]{id} ,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
Group group=new Group();
group.setName(rs.getString("name"));
group.setId(rs.getInt("gid"));
User user=new User();
user.setGroup(group);
user.setId(rs.getInt("uid"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setAge(rs.getInt("age"));
user.setBirthDay(rs.getDate("birthday"));
user.setCreateDate(rs.getDate("createdate"));
return user;
}
});
return u;
}
/**
* 上面方法简化
* @param id
* @return
*/
public User loadOther(int id) {
String sql="select t1.id uid ,t1.*,t2.* from t_user t1 left join `group` t2 on (t1.gid=t2.id) where t1.id=?";
User u=(User)JdbcTemplate.queryForObject(sql,new Object[]{id} ,new UserMapper());
return u;
}
@Override
public List<User> list(String sql,Object[] args) {
//查询总条数,获取整数值
String sqlCount="select count(1) from user";
int count=JdbcTemplate.queryForInt(sqlCount);
System.out.println(count);
//查询单列,获取String类型的列表
String sqlCol="select username from t_user";
List<String> cols=JdbcTemplate.queryForList(sqlCol, String.class);
for (int i = 0; i < cols.size(); i++) {
System.out.println(cols.get(i));
}
//查询多列
String sqlCols="select username,password from t_user";
List<User> users=JdbcTemplate.query(sqlCols,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user=new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
});
for (int i = 0; i < users.size(); i++) {
System.out.println(users.get(i).toString());
}
//查询列表
return JdbcTemplate.query(sql, args,new UserMapper());
}
/**
* 建议通过内部类来解决,而不要使用匿名的内部类
* @author sunlight
*
*/
private class UserMapper implements RowMapper<User>{
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
Group group=new Group();
group.setName(rs.getString("name"));
group.setId(rs.getInt("gid"));
User user=new User();
user.setGroup(group);
user.setId(rs.getInt("uid"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setAge(rs.getInt("age"));
user.setBirthDay(rs.getDate("birthday"));
user.setCreateDate(rs.getDate("createdate"));
return user;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spring_integration_hibernate3_basic.zip (67个子文件)
spring_integration_hibernate3_basic
.project 1KB
.settings
.jsdtscope 491B
org.eclipse.wst.common.component 508B
org.eclipse.jdt.core.prefs 357B
org.eclipse.wst.common.project.facet.core.xml 335B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
src
org
oms
spring
dao
GroupHibernateDao.java 661B
UserDao.java 5KB
IGroupDao.java 155B
IUserDao.java 306B
BaseDao.java 649B
GroupDao.java 2KB
UserHibernateDao.java 1KB
test
TestTemple.java 569B
TestHibernate.java 1KB
aa.java 51B
TestJdbc.java 2KB
model
User.java 2KB
Group.java 672B
template
MyCallback.java 99B
MyJdbcTemplateByInOld.java 699B
MessageDao.java 235B
RoleDao.java 214B
MyJdbcTemplate.java 1015B
MyJdbcTemplateByIn.java 611B
log4j.properties 543B
jdbc.properties 169B
beans.xml 4KB
build
classes
org
oms
spring
dao
IUserDao.class 433B
IGroupDao.class 215B
GroupDao.class 2KB
UserDao$UserMapper.class 2KB
GroupHibernateDao.class 1KB
UserHibernateDao.class 3KB
UserDao$1.class 2KB
UserDao.class 4KB
BaseDao.class 906B
UserDao$2.class 1KB
GroupDao$1.class 1KB
test
TestTemple.class 739B
TestJdbc.class 3KB
aa.class 271B
TestHibernate.class 2KB
model
User.class 3KB
Group.class 1KB
template
MyJdbcTemplate$1.class 1KB
MyJdbcTemplate$3.class 1KB
RoleDao.class 613B
MyJdbcTemplateByInOld.class 926B
MyJdbcTemplate.class 2KB
MyCallback.class 154B
MyJdbcTemplate$2.class 1KB
MyJdbcTemplateByIn.class 858B
MessageDao.class 625B
log4j.properties 543B
jdbc.properties 169B
beans.xml 4KB
WebContent
WEB-INF
web.xml 1KB
.DS_Store 6KB
lib
.DS_Store 6KB
META-INF
MANIFEST.MF 39B
.DS_Store 6KB
.classpath 913B
.DS_Store 6KB
logs
Spring_hibernate_struts2.log-2014-10-10 61KB
Spring_hibernate_struts2.log 62KB
共 67 条
- 1
资源评论
rzg813
- 粉丝: 293
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功