MVC设计模式下的Dao的设计以及基础框架的搭建(以对数据库进行插入和查询为例)

//类对象
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());
		}
		
		
		
	}
	

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值