//类对象
import java.util.Date;
public class User {
private String id;
private String name;
private int age;
private Date birth;
public User(){
}
public User(String id, String name, int age, Date birth) {
super();
this.id = id;
this.name = name;
this.age = age;
this.birth = birth;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}
//DAO接口
import java.lang.Exception;
import java.util.List;
public interface UserDao {
public boolean insert(User user) throws Exception;//编写DAO的时候需要考虑的是业务逻辑,比如要对数据库做插入操作的时候,就要考虑是不是插入一个对象
public List<User> query() throws Exception;//而查询的时候就得考虑是不是需要将查询到的数据返回的是不是一个对象型的List。
}
//DAO的实现类
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class UserDaoImpl implements UserDao {
public boolean insert(User user) throws Exception {
Connection conn =null;
PreparedStatement ps = null;
try{
conn =DBUtils.getConnection();
String sql="insert into t_user values(seq_user.nextval,?,?,?)";
ps=conn.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setInt(2, user.getAge());
ps.setDate(3,new Date(user.getBirth().getTime()));
if(ps.executeUpdate()>0){
return true;
}
}finally{
DBUtils.close(ps, conn);
}
return false;
}
@Override
public List<User> query() throws Exception {
//将得到的数据以对象的形式存入List集合中
List <User> user = new ArrayList<User>();
//初始化数据
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
//建立数据库连接
conn= DBUtils.getConnection();
//查询语句
String sql="select id,name,age,birth from t_user";
//得到Statement对象
ps=conn.prepareStatement(sql);
//将执行后的结果传到结果集
rs=ps.executeQuery();
//初始化User对象,待传值
User u = null;
//遍历结果集
while(rs.next()){
String id = rs.getString(1);//1是列的索引
String name= rs.getString(2);
int age = rs.getInt(3);
Date birth = rs.getDate(4);
//将遍历后的结果集传到 User对象中
u = new User(id,name,age,birth);
//将User对象添加到List集合中
user.add(u);
}
}finally{
DBUtils.close(rs, ps, conn);
}
return user;
}
}
//测试类
import java.util.Date;
import java.util.List;
public class TestDao {
public static void main(String [] args) throws Exception{
User user = new User();
//user.setId("15");
user.setName("lihua");
user.setAge(26);
user.setBirth(new Date());
UserDao dao = new UserDaoImpl();
boolean result =dao.insert(user);
if(result){
System.out.println("插入USRE成功");
}else{
System.out.println("插入USER失败");
}
}
* @throws Exception
public static void main(String [] args) throws Exception{
UserDao dao = new UserDaoImpl();
List <User> user=dao.query();
for(User a:user){
System.out.println(a.getId()+":"+a.getName()+":"+a.getAge()+":"+a.getBirth());
}
}
}