J2EE学习篇之--JDBC详解(四)

2014-11-23 21:26:05 · 作者: · 浏览: 39
etDate(3,new Date(user.getBirthday().getTime())); st.setFloat(4, user.getMoney()); int count = st.executeUpdate(); System.out.println("添加记录条数:"+count); }catch(Exception e){ throw new DaoException(e.getMessage(),e); }finally{ JdbcUtils.free(null, st, conn); } } /** * 删除用户 */ public int delete(User user) { Connection conn = null; PreparedStatement st = null; try{ conn = JdbcUtils.getConnection(); String sql = "delete from user where id= "; st = conn.prepareStatement(sql); st.setInt(1,user.getId()); int count = -1; count = st.executeUpdate(); System.out.println("删除记录条数:"+count); return count; }catch(Exception e){ throw new DaoException(e.getMessage(),e); }finally{ JdbcUtils.free(null, st, conn); } } /** * 通过userId获取用户信息 */ public User getUserById(int userId) { Connection conn = null; PreparedStatement st = null; ResultSet rs = null; try{ conn = JdbcUtils.getConnection(); String sql = "select * from user where id= "; st = conn.prepareStatement(sql); st.setInt(1,userId); rs = st.executeQuery(); if(rs.next()){ User user = new User(); user.setId(userId); user.setName(rs.getString("name")); user.setBirthday(rs.getDate("birthday")); user.setMoney(rs.getFloat("money")); return user; } }catch(Exception e){ throw new DaoException(e.getMessage(),e); }finally{ JdbcUtils.free(rs, st, conn); } return null; } /** * 更新用户信息 */ public int update(User user){ Connection conn = null; PreparedStatement st = null; try{ conn = JdbcUtils.getConnection(); String sql = "update user set name= ,birthday= ,money= where id= "; st = conn.prepareStatement(sql); st.setString(1,user.getName()); st.setDate(2,new Date(user.getBirthday().getTime())); st.setFloat(3,user.getMoney()); st.setInt(3,user.getId()); int count = 0; count = st.executeUpdate(); System.out.println("更新的记录数:"+count); return count; }catch(Exception e){ throw new DaoException(e.getMessage(),e); }finally{ JdbcUtils.free(null, st, conn); } } }
然后是Servic层:

package com.weijia.domain;

public class UserService {
	
	private UserDao userDao;
	
	public UserService(){
		//通过工厂实例化UserDao对象
		userDao = DaoFactory.getInstance().createUserDao();
		System.out.println("userDao:"+userDao);
	}
	
	/**
	 * 注册用户
	 * @param user
	 */
	public void regist(User user){
		if(user == null){
			System.out.println("注册信息无效!!");
		}else{
			userDao.addUser(user);
		}
		
	}
	
	/**
	 * 查询用户
	 * @param userId
	 * @return
	 */
	public User query(int userId){
		User user = userDao.getUserById(userId);
		if(user == null){
			System.out.println("查询结果为空!!");
		}else{
			System.out.println(user.getId()+"\t"+user.getName()+"\t"+user.getBirthday()+"\t"+user.getMoney());
		}
		return userDao.getUserById(userId);
	}
	
	/**
	 * 更新用户
	 * @param user
	 */
	public void update(User user){
		if(user.getId()<=0){
			System.out.println("用户id无效,无法更新");
		}else{
			userDao.update(user);
		}
	}
	
	/**
	 * 删除用户
	 * @param user
	 */
	public void delete(User user){
		if(user.getId()<=0){
			System.out.println("用户id无效,无法删除!!");
		}else{
			userDao.delete(user);
		}
	}
	
}

这里我们还需要额外的两个类:

一个是异常类,因为我们需要自定义我们自己的一个异常,这样方便进行捕获:

package com.weijia.domain;

public class DaoException extends RuntimeException{

	private static final long serialVersionUID = 1L;
	
	public DaoException(){
		
	}
	
	public DaoExcep