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