dti

五、java文件

1、包hibernate

   HibernateOperation.java文件:

  1. package hibernate;   
  2.   
  3. import org.hibernate.*;   
  4. import org.hibernate.cfg.*;   
  5.   
  6.   
  7. public class HibernateOperation{   
  8.   
  9.       public static final SessionFactory sessionFactory;   
  10.       //静态变量,用于产生Session作为数据库连接   
  11.   
  12.       static {   
  13.         try {   
  14.             sessionFactory = new Configuration().configure().buildSessionFactory();   
  15.             //从hibernate.cfg.xml创建全局SessionFactory   
  16.         } catch (Throwable ex) {   
  17.             System.err.println("Initial SessionFactory creation failed." + ex);   
  18.             throw new ExceptionInInitializerError(ex);   
  19.             //创建SessionFactory失败,抛出异常   
  20.         }   
  21.       }   
  22.       //静态初始化过程,产生全局SessionFactory(相当于产生数据库连接的工厂),该静态初始化过程仅当JVM加载该类时执行一次   
  23.   
  24.       public static final ThreadLocal session = new ThreadLocal();   
  25.   
  26.       public static Session currentSession() throws HibernateException {   
  27.         Session s = (Session) session.get();   
  28.         // 打开一个新的 Session   
  29.         if (s == null) {   
  30.             s = sessionFactory.openSession();   
  31.             session.set(s);   
  32.         }   
  33.         return s;   
  34.       }   
  35.   
  36.     public static void closeSession() throws HibernateException {   
  37.         Session s = (Session) session.get();   
  38.         if (s != null)   
  39.             s.close();   
  40.             //关闭session   
  41.         session.set(null);   
  42. }   
  43. }

2、包page

Page.java文件:

  1. package page;   
  2. import java.math.*;   
  3.   
  4. public class Page{   
  5.   
  6.     private int totalRows; //总行数   
  7.     private int pageSize = 5//每页显示的行数   
  8.     private int currentPage=1//当前页号   
  9.     private int totalPages; //总页数   
  10.     private int startRow=0//当前页在数据库中的起始行0,pageSize,pageSize*2,pageSize*3...   
  11.        
  12.        
  13.     public Page() {   
  14.     }   
  15.   
  16.     public Page(int totalRows) {   
  17.     this.totalRows =totalRows;   
  18.         totalPages=totalRows/pageSize;   
  19.         int mod=totalRows%pageSize;   
  20.         if(mod>0){   
  21.         totalPages++;   
  22.         }   
  23.         currentPage = 1;   
  24.         startRow = 0;   
  25.         }   
  26.     //为了在完成删除或修改后能显示当前页       
  27.     public Page(int totalRows,int currentPage,int startRow) {   
  28.     this.totalRows =totalRows;   
  29.         totalPages=totalRows/pageSize;   
  30.         int mod=totalRows%pageSize;   
  31.         if(mod>0){   
  32.         totalPages++;   
  33.         }                          
  34.         this.currentPage=currentPage;   
  35.         this.startRow=startRow;   
  36.         }   
  37.        
  38.     public Page(int totalRows,int currentPage) {   
  39.     this.totalRows =totalRows;   
  40.         totalPages=totalRows/pageSize;   
  41.         int mod=totalRows%pageSize;   
  42.         if(mod>0){   
  43.         totalPages++;   
  44.         }                
  45.         if(currentPage<=0)    currentPage =1;   
  46.         if(currentPage>totalPages) currentPage=totalPages;   
  47.         this.currentPage =currentPage;   
  48.         startRow = (currentPage - 1)*pageSize;   
  49.         }   
  50. //总行数   
  51.     public void setTotalRows(int totalRows) {   
  52.         this.totalRows = totalRows;   
  53.     }    
  54.     public int getTotalRows() {   
  55.        return totalRows;   
  56.     }   
  57. //每页显示的行数   
  58.     public void setPageSize(int pageSize) {   
  59.         this.pageSize = pageSize;   
  60.    }   
  61.     public int getPageSize() {   
  62.         return pageSize;   
  63.     }   
  64. //当前页号   
  65.     public void setCurrentPage(int currentPage) {   
  66.         this.currentPage = currentPage;   
  67.    }    
  68.     public int getCurrentPage() {   
  69.         return currentPage;   
  70.     }   
  71.   
  72. //总页数   
  73.     public void setTotalPages(int totalPages) {   
  74.         this.totalPages = totalPages;   
  75.     }   
  76.       
  77.     public int getTotalPages() {   
  78.         return totalPages;   
  79.     }   
  80. //当前页在数据库中的起始行   
  81.     public void setStartRow(int startRow) {   
  82.         this.startRow = startRow;   
  83.     }   
  84.            
  85.     public int getStartRow() {   
  86.     return startRow;   
  87.     }   
  88. }

3、包user里的文件:

(1)、User.java文件:

  1. package user;   
  2.   
  3. public class User implements java.io.Serializable {   
  4.   
  5.   
  6. private int id;   
  7. private String name;   
  8. private String password;   
  9.   
  10.   
  11. public User() {   
  12. }   
  13.   
  14.   
  15. public User(int id) {   
  16.    this.id = id;   
  17. }   
  18.   
  19.   
  20. public User(int id, String name, String password) {   
  21.    this.id = id;   
  22.    this.name = name;   
  23.    this.password = password;   
  24. }   
  25.   
  26.   
  27. public int getId() {   
  28.    return this.id;   
  29. }   
  30.   
  31. public void setId(int id) {   
  32.    this.id = id;   
  33. }   
  34.   
  35. public String getName() {   
  36.    return this.name;   
  37. }   
  38.   
  39. public void setName(String name) {   
  40.    this.name = name;   
  41. }   
  42.   
  43. public String getPassword() {   
  44.    return this.password;   
  45. }   
  46.   
  47. public void setPassword(String password) {   
  48.    this.password = password;   
  49. }   
  50.   
  51. }  

(2)、UserDAO.java文件(关于数据库的操作):

  1. package user;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.Iterator;   
  5. import org.hibernate.Session;   
  6. import org.hibernate.Transaction;   
  7. import java.util.List;   
  8. import org.hibernate.Query;   
  9. import hibernate.*;   
  10.   
  11. public class UserDAO{   
  12.   
  13. private Session session=null;   
  14.     private Transaction tx=null;   
  15.        
  16. public boolean isLogin(String name,String password){   
  17.   
  18.      boolean flag = false;   
  19.      try{        
  20.       session=HibernateOperation.currentSession();         
  21.       String hql = "FROM User AS u WHERE u.name='"+name+"' AND u.password='"+password+"'";   
  22.             tx= session.beginTransaction();   
  23.             Query q=(Query)session.createQuery(hql);   
  24.       Iterator iter = q.list().iterator();   
  25.       if (iter.hasNext()) {   
  26.       flag = true;   
  27.       }   
  28.       tx.commit();   
  29.       session.close();   
  30.      }   
  31.     catch(RuntimeException e){   
  32.     if(tx!=null) tx.rollback();   
  33.     session.close();   
  34.     throw e;   
  35.     }   
  36.    return flag;   
  37.    }    
  38.   
  39. public ArrayList getUserList(){   
  40.    List list=new ArrayList();   
  41.        session=HibernateOperation.currentSession();   
  42.        try{   
  43.             tx= session.beginTransaction();   
  44.             String hql = "FROM User AS u ORDER BY u.id";   
  45.             Query q = session.createQuery(hql);           
  46.             list=q.list();   
  47.       tx.commit();   
  48.        }   
  49.        catch(RuntimeException e){   
  50.     if(tx!=null) tx.rollback();   
  51.     throw e;   
  52.     }   
  53.    finally {    
  54.     HibernateOperation.closeSession();    
  55.         }    
  56.      
  57.     return (ArrayList) list;    
  58. }   
  59.   
  60. public int getRows(String hql){   
  61.     int totalRows = 0;   
  62.         session=HibernateOperation.currentSession();   
  63.         try {   
  64.         tx = session.beginTransaction();   
  65.         //String hql = "SELECT COUNT(*) FROM User";   
  66.         Query q = session.createQuery(hql);              
  67.             List L=q.list();   
  68.             totalRows=((Integer)(L.get(0))).intValue();             
  69.             tx.commit();                    
  70.         }    
  71.         catch(RuntimeException e){   
  72.     if(tx!=null) tx.rollback();   
  73.     throw e;   
  74.     }   
  75.    finally {    
  76.     HibernateOperation.closeSession();    
  77.         }   
  78.         return totalRows;   
  79.         }   
  80.   
  81. //得到一页用户列表   
  82. public ArrayList getUserList(int pageSize, int startRow,String hql){   
  83.    List list=new ArrayList();   
  84.        session=HibernateOperation.currentSession();   
  85.        try{   
  86.             tx= session.beginTransaction();   
  87.             //String hql = "FROM User AS u ORDER BY u.id";   
  88.             Query q = session.createQuery(hql);   
  89.             q.setFirstResult(startRow);//0,5,10....   
  90.             q.setMaxResults(pageSize);   
  91.             list=q.list();   
  92.       tx.commit();   
  93.        }   
  94.        catch(RuntimeException e){   
  95.     if(tx!=null) tx.rollback();   
  96.     throw e;   
  97.     }   
  98.    finally {    
  99.     HibernateOperation.closeSession();    
  100.         }    
  101.      
  102.     return (ArrayList) list;    
  103. }   
  104.   
  105. //显示查询      
  106.     public String Searchuser(String keyword,String cat){   
  107.     String hql=null;   
  108.     String s=null;//取得列名   
  109.     if(keyword==null){   
  110.        hql="FROM User";   
  111.     }   
  112.     else{   
  113.          if(cat.equals("00")) s="name";   
  114.          else{   
  115.          s="password";        
  116.          }   
  117.          hql="FROM User AS u WHERE "+s+" like '%"+keyword+"%'";   
  118.     }   
  119.        return hql;   
  120.     }   
  121.        
  122. //删除用户   
  123. public void Deluser(int id){   
  124.    boolean flag = false;    
  125.    session=HibernateOperation.currentSession();          
  126.         try{   
  127.         tx= session.beginTransaction();   
  128.             User user=(User)session.get(User.class,id);   
  129.             session.delete(user);   
  130.             session.flush();   
  131.       tx.commit();   
  132.    }   
  133.        catch(RuntimeException e){   
  134.     if(tx!=null) tx.rollback();   
  135.     throw e;   
  136.     }   
  137.    finally {    
  138.     HibernateOperation.closeSession();    
  139.         }       
  140. }   
  141.   
  142. }  

(3)、UserListAction.java文件:

  1. package user;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.Iterator;   
  5. import org.hibernate.Session;   
  6. import org.hibernate.Transaction;   
  7. import java.util.List;   
  8. import org.hibernate.Query;   
  9. import hibernate.*;   
  10.   
  11. public class UserDAO{   
  12.   
  13. private Session session=null;   
  14.     private Transaction tx=null;   
  15.        
  16. public boolean isLogin(String name,String password){   
  17.   
  18.      boolean flag = false;   
  19.      try{        
  20.       session=HibernateOperation.currentSession();         
  21.       String hql = "FROM User AS u WHERE u.name='"+name+"' AND u.password='"+password+"'";   
  22.             tx= session.beginTransaction();   
  23.             Query q=(Query)session.createQuery(hql);   
  24.       Iterator iter = q.list().iterator();   
  25.       if (iter.hasNext()) {   
  26.       flag = true;   
  27.       }   
  28.       tx.commit();   
  29.       session.close();   
  30.      }   
  31.     catch(RuntimeException e){   
  32.     if(tx!=null) tx.rollback();   
  33.     session.close();   
  34.     throw e;   
  35.     }   
  36.    return flag;   
  37.    }    
  38.   
  39. public ArrayList getUserList(){   
  40.    List list=new ArrayList();   
  41.        session=HibernateOperation.currentSession();   
  42.        try{   
  43.             tx= session.beginTransaction();   
  44.             String hql = "FROM User AS u ORDER BY u.id";   
  45.             Query q = session.createQuery(hql);           
  46.             list=q.list();   
  47.       tx.commit();   
  48.        }   
  49.        catch(RuntimeException e){   
  50.     if(tx!=null) tx.rollback();   
  51.     throw e;   
  52.     }   
  53.    finally {    
  54.     HibernateOperation.closeSession();    
  55.         }    
  56.      
  57.     return (ArrayList) list;    
  58. }   
  59.   
  60. public int getRows(String hql){   
  61.     int totalRows = 0;   
  62.         session=HibernateOperation.currentSession();   
  63.         try {   
  64.         tx = session.beginTransaction();   
  65.         //String hql = "SELECT COUNT(*) FROM User";   
  66.         Query q = session.createQuery(hql);              
  67.             List L=q.list();   
  68.             totalRows=((Integer)(L.get(0))).intValue();             
  69.             tx.commit();                    
  70.         }    
  71.         catch(RuntimeException e){   
  72.     if(tx!=null) tx.rollback();   
  73.     throw e;   
  74.     }   
  75.    finally {    
  76.     HibernateOperation.closeSession();    
  77.         }   
  78.         return totalRows;   
  79.         }   
  80.   
  81. //得到一页用户列表   
  82. public ArrayList getUserList(int pageSize, int startRow,String hql){   
  83.    List list=new ArrayList();   
  84.        session=HibernateOperation.currentSession();   
  85.        try{   
  86.             tx= session.beginTransaction();   
  87.             //String hql = "FROM User AS u ORDER BY u.id";   
  88.             Query q = session.createQuery(hql);   
  89.             q.setFirstResult(startRow);//0,5,10....   
  90.             q.setMaxResults(pageSize);   
  91.             list=q.list();   
  92.       tx.commit();   
  93.        }   
  94.        catch(RuntimeException e){   
  95.     if(tx!=null) tx.rollback();   
  96.     throw e;   
  97.     }   
  98.    finally {    
  99.     HibernateOperation.closeSession();    
  100.         }    
  101.      
  102.     return (ArrayList) list;    
  103. }   
  104.   
  105. //显示查询      
  106.     public String Searchuser(String keyword,String cat){   
  107.     String hql=null;   
  108.     String s=null;//取得列名   
  109.     if(keyword==null){   
  110.        hql="FROM User";   
  111.     }   
  112.     else{   
  113.          if(cat.equals("00")) s="name";   
  114.          else{   
  115.          s="password";        
  116.          }   
  117.          hql="FROM User AS u WHERE "+s+" like '%"+keyword+"%'";   
  118.     }   
  119.        return hql;   
  120.     }   
  121.        
  122. //删除用户   
  123. public void Deluser(int id){   
  124.    boolean flag = false;    
  125.    session=HibernateOperation.currentSession();          
  126.         try{   
  127.         tx= session.beginTransaction();   
  128.             User user=(User)session.get(User.class,id);   
  129.             session.delete(user);   
  130.             session.flush();   
  131.       tx.commit();   
  132.    }   
  133.        catch(RuntimeException e){   
  134.     if(tx!=null) tx.rollback();   
  135.     throw e;   
  136.     }   
  137.    finally {    
  138.     HibernateOperation.closeSession();    
  139.         }       
  140. }   
  141.   

(4)、UserWidgetAction.java文件:

  1. package user;   
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;   
  4. import com.opensymphony.xwork2.ActionContext;   
  5. import java.util.ArrayList;   
  6. import java.util.List;   
  7. import java.util.Map;   
  8.   
  9. import page.*;   
  10.   
  11. public class UserWidgetAction extends ActionSupport {   
  12. /**  
  13.  
  14. */  
  15. private static final long serialVersionUID = 1L;   
  16. private List userList;   
  17. protected String currentPage;   
  18. private Page page;   
  19.      
  20. public String execute() throws Exception {   
  21.      
  22.    UserDAO dao=new UserDAO();   
  23.    ActionContext ctx = ActionContext.getContext();    
  24.         Map m=ctx.getSession();      
  25.    String keyword=(String) m.get("search_keyword");   
  26.    String cat=(String) m.get("search_cat");   
  27.    String hql_1=dao.Searchuser(keyword,cat);   
  28.    String hql_2="select count(*) "+hql_1;   
  29.    int totalRows=dao.getRows(hql_2);   
  30.    int _currentPage=Integer.parseInt(currentPage);   
  31.    page=keyw

你可能感兴趣的:(DAO,jvm,Hibernate)