📄 userservice.java
字号:
package com.serviceImp;import java.util.*;import com.bean.*;import static com.common.HibernateSessionFactory.getSession;import java.sql.*;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import com.common.*;public class UserService { // 工厂方法:提供对业务逻辑层操作的对象 public static UserService getUserService() { return new UserService(); } // 按照id加载 public List<User> load(Long id) { List<User> subList = new ArrayList<User>(); Session session = getSession(); Transaction trans = session.beginTransaction(); User user = (User) session.get(User.class, id); if (user == null) { trans.commit(); session.close(); return subList; } Connection conn = session.connection(); addTime(user, conn); subList.add(user); trans.commit(); session.close(); return subList; } // 为某一user对象初始化时间属性 public void addTime(final User user, Connection conn) { JDBCTemplate temp = new JDBCTemplate(); // 借助session获得连接对象 String sql = "select timestr from zhao_user_tbl where id=?"; temp.query(sql, new PreparedStatementSetter() { public void setter(PreparedStatement pstmt) throws SQLException { pstmt.setLong(1, user.getId()); } }, new Handler() { public void handler(ResultSet rs) throws SQLException { if (rs.next()) { // 完成对注册时间的初始化 user.setTimeStr(rs.getTimestamp(1).toLocaleString()); } } }, conn); } public List<User> load(String userName, String userPwd) { // 登录时使用 Session session = getSession(); Transaction trans = session.beginTransaction(); Query query = session .createQuery("from com.bean.User where userName=:name and userPwd=:pwd"); query.setString("name", userName); query.setString("pwd", userPwd); List<User> list = query.list(); if (list.size() == 0) { trans.commit(); session.close(); return new ArrayList<User>(); } User user = (User) list.get(0); // 需要初始化时间 Connection conn = session.connection(); addTime(user, conn); trans.commit(); session.close(); return list; } // 注册时使用:要求用户名保证唯一 public boolean add(String userName, String userPwd) { Session session = getSession(); Transaction trans = session.beginTransaction(); // 检验用户名是否唯一 Query query = session .createQuery("from com.bean.User where username=:name "); query.setString("name", userName); List list = query.list(); if (list.size() != 0) { trans.commit(); session.close(); return false; } User user = new User(); user.setUserName(userName); user.setUserPwd(userPwd); // 添加 session.save(user); trans.commit(); session.close(); return true; } //添加照片和城市 public boolean add(User user,String city,String img){ Session session = getSession(); Transaction trans = session.beginTransaction(); user.setCity(city); user.setImg(img); session.save(user); trans.commit(); session.close(); return true; } // 更新的时候考虑用户命的“唯一性” public boolean update(Long id, String newUserName, String newUserPwd, String newCity, String newImg, int newCent) { Session session = getSession(); Transaction trans = session.beginTransaction(); // (1)检查id对应的user是否存在 User user = (User) session.get(User.class, id); if (user == null) { trans.commit(); session.close(); return false; } // (2)检查新的用户名是否可以保证唯一性 Query query = session .createQuery("from com.bean.User where id!=:id and username=:name "); query.setLong("id", id); query.setString("name", newUserName); List list = query.list(); if (list.size() != 0) { trans.commit(); session.close(); return false; } // (3)更新操作 user.setUserName(newUserName); user.setUserPwd(newUserPwd); user.setCity(newCity); user.setImg(newImg); user.setCent(newCent); trans.commit(); session.close(); return true; } // 只对用户名和密码更新 public boolean update(User user, String newUserName, String newUserPwd) { return update(user.getId(), newUserName, newUserPwd, user.getCity(), user.getImg(), user.getCent()); } // type占位,为了重载对城市及img的更新 public boolean update(User user, String newCity, String newImg, boolean type) { return update(user.getId(), user.getUserName(), user.getUserPwd(), newCity, newImg, user.getCent()); } // 更新用户积分 public boolean update(User user, int newCent) { return update(user.getId(), user.getUserName(), user.getUserPwd(), user .getCity(), user.getImg(), user.getCent()); } public static void main(String[] args) { UserService service = UserService.getUserService(); //.out.println(service.add("mary", "123")); for(User user:service.load("qiang","789")){ System.out.println(user); } System.out.println(service.add("qiang","111")); for (User user : service.load(2L)) System.out.println(user); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -