package org.lei.model;
import java.util.Date;
/**
* @author renlei
* @E-mail:renlei0109@yeah.net
* @version 创建时间:2014-6-17 下午8:13:55 简单说明
*/
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
AbstractDaoImpl
package org.lei.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.tree.RowMapper;
import org.lei.util.JDBCUtil;
public abstract class AbstractDaoImpl {
/**
* 可用来执行改,删,插入操作
* @param sql
* @param args 一个数组
* @return
*/
public int update(String sql ,Object[]args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JDBCUtil.getDataSource().getConnection();
ps = conn.prepareStatement(sql);
for(int i = 0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
return ps.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}finally{
JDBCUtil.free(rs, ps, conn);
}
return -1;
}
/**
* 用来执行查询操作
* @param sql
* @param args
* @return
*/
public List<Object> find(String sql,Object[]args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JDBCUtil.getDataSource().getConnection();
ps = conn.prepareStatement(sql);
for(int i = 0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
rs = ps.executeQuery();
Object object = null;
List<Object> list = new ArrayList<Object>();
try {
list = rowMapper(rs);
return list;
} catch (Exception e) {
e.printStackTrace();
}
}catch(SQLException e){
e.printStackTrace();
}
return null;
}
/**
* 让子类来实现,用来封装数据
* @param rs
* @return
* @throws Exception
*/
protected abstract List<Object> rowMapper (ResultSet rs)throws Exception;
}
UserDaoImpl
package org.lei.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.lei.dao.UserDao;
import org.lei.model.User;
import org.lei.util.JDBCUtil;
/**
* @author renlei
* @E-mail:renlei0109@yeah.net
* @version 创建时间:2014-6-22 下午7:11:30 简单说明
*/
public class UserDaoImpl extends AbstractDaoImpl implements UserDao {
<span style="white-space:pre"> </span>public User findUser(int id) {
<span style="white-space:pre"> </span>String sql = "select * from userinfo where id = ?";
<span style="white-space:pre"> </span>Object []args = new Object[]{id};
<span style="white-space:pre"> </span>//通过类组合实现,策略者模式
<span style="white-space:pre"> </span>List<Object>users = super.find(sql, args);
<span style="white-space:pre"> </span>if(users!=null)
<span style="white-space:pre"> </span>return (User)users.get(0);
<span style="white-space:pre"> </span>return null;
<span style="white-space:pre"> </span>}
protected List<Object> rowMapper (ResultSet rs)throws Exception{
List<Object>users = new ArrayList<Object>();
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
users.add(user);
}
return users;
}
public int updateUser(int id,String name ){
String sql = "update userinfo set name= ? where id = ?";
Object []args = new Object[]{name,id};
//调用父类的update
return super.update(sql, args);
}
}