Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合

最新版Struts2+Hibernate+Spring整合

    目前为止三大框架最新版本是:

     struts2.3.16.1

     hibernate4.3.4

     spring4.0.2 

    其中struts2和hibernate的下载方式比较简单,但是spring下载有点麻烦,可以直接复制下面链接下载最新版spring


http://repo.springsource.org/libs-release-local/org/springframework/spring/4.0.2.RELEASE/spring-framework-4.0.2.RELEASE-dist.zip 

一. 所需的jar包(其中aopaliance-1.0.jar,是spring所依赖的jar,直接复制粘贴到谷歌百度就有的下载)

框架

版本

所需jar包

Struts2

2.3.16.1

Hibernate

4.3.4

spring

4.0.2

其它

 无


二.  创建一张表

CREATE TABLE `user` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `user_name` varchar(20) DEFAULT NULL,

 `password` varchar(20) DEFAULT NULL,

 `address` varchar(100) DEFAULT NULL,

 `phone_number` varchar(20) DEFAULT NULL,

 `create_time` datetime DEFAULT NULL,

 `update_time` datetime DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULTCHARSET=utf8;

并插入一条数据

INSERT INTO `user` VALUES ('1', 'test','test', 'test', 'test', '2014-03-29 00:48:14', '2014-03-29 00:48:17');

三. 先看下myeclipse的目录结构

 

 

 


 

四. 配置文件

1. web.xml

 

[html] copy
 
 
<? = =?> < =   
  • =   
  •     =   
  • ="http://java.sun.com/xml/ns/javaee   
  •     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  • >>   
  •   > ></> ></> > > ></> >   
  •   > ></> ></> > =,那么在读取数据的时候,当读取了父数据后,  
  •   
  •    > ></> ></> > ></> ></> > > > ></> ></> > > ></> ></> > > ></> > </>  


2. applicationContext.xml

 

 

[html] copy
 
 

<? = =?> < =    

  • =   
  •     =  
  • =   
  •     =  
  • =  
  •     =  
  • ="    
  •         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
  •     
  •   
  •  =   
  •   
  •   
  •      = =  
  • =>  = =>>  = =>>  = =>>  = =>>  = =>>  = =>>  = =>>  = =>> >   
  •  =  
  •         =>  =>  =   
  • >  = =/>   
  •          => > ></> > > >   
  •      =  
  • =>  = =   
  • >   
  •      = =>   
  •         >  = =   
  •              = =   
  •  = =   
  •              = =   
  •  = =   
  •              = =   
  •  = =   
  •              = =   
  •  = =   
  •              = =   
  •  = = =   
  •              = = =   
  •  = = =   
  •              = = =   
  • > >  = =/>>   
  •     >  =  
  •             =  
  •  = =   
  •     >   
  •  =   
  •   
  • </>  


3. db.properties

 

 

[html] copy
 
 

db.driverClassNamecom db.urljdbc db.usernameroot db.passwordroot  
4. hibernate.cfg.xml

 

 

[html] copy
 
 

<? = =?>

  •     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"  
  • <> >  =></>  =></>  =></>   
  •          =></>  =></>  =></>   
  •  =></>  =></>  =></> > </>  


5. struts.xml

 

 

[html] copy
 
 

<? = =?>

  •     "http://struts.apache.org/dtds/struts-2.3.dtd"  
  • <>  = =   
  •      = =   
  •  = =   
  •       
  •  = = =>  = = =>  =></>  =></> > > </>   

 


6. ehcache.xml (可以到下载的hibernate文件目录(hibernate-release-4.3.4.Final\hibernate-release-4.3.4.Final\project\etc)下找

 

五. JAVA类

1.BaseDAO.java(网上找的一个)

 

[java] copy
 
 

package import import /** 

  •  * 基础数据库操作类 
  •  * @author ss 
  •  */ public BaseDAO<T> {  
  •      * 保存一个对象 
  •      * @param o 
  •      */  Serializable save(T o);  
  •      * 删除一个对象 
  •      * @param o 
  •   
  •   delete(T o);  
  •   
  •      * 更新一个对象 
  •      *  
  •      */   update(T o);  
  •      * 保存或更新对象 
  •      * @param o 
  •   
  •   saveOrUpdate(T o);  
  •   
  •      * 查询 
  •      *  
  •      * @return 
  •   
  •  List<T> find(String hql);  
  •   
  •      * 查询集合 
  •      *  
  •      * @param param 
  •      */  List<T> find(String hql, Object[] param);  
  •      * 查询集合 
  •      * @param hql 
  •      * @return 
  •   
  •  List<T> find(String hql, List<Object> param);  
  •   
  •      * 查询集合(带分页) 
  •      *  
  •      * @param param 
  •      *            查询第几页 
  •      *            每页显示几条记录 
  •      */  List<T> find(String hql, Object[] param, Integer page, Integer rows);  
  •      * 查询集合(带分页) 
  •      * @param hql 
  •      * @param page 
  •      * @return 
  •   
  •  List<T> find(String hql, List<Object> param, Integer page, Integer rows);  
  •   
  •      * 获得一个对象 
  •      *  
  •      *            对象类型 
  •      * @return Object 
  •   
  •  T get(Class<T> c, Serializable id);  
  •   
  •      * 获得一个对象 
  •      *  
  •      * @param param 
  •      */  T get(String hql, Object[] param);  
  •      * 获得一个对象 
  •      * @param hql 
  •      * @return 
  •   
  •  T get(String hql, List<Object> param);  
  •   
  •      * select count(*) from 类 
  •      *  
  •      * @return 
  •   
  •  Long count(String hql);  
  •   
  •      * select count(*) from 类 
  •      *  
  •      * @param param 
  •      */  Long count(String hql, Object[] param);  
  •      * select count(*) from 类 
  •      * @param hql 
  •      * @return 
  •   
  •  Long count(String hql, List<Object> param);  
  •   
  •      * 执行HQL语句 
  •      *  
  •      * @return 响应数目 
  •   
  •  Integer executeHql(String hql);  
  •   
  •      * 执行HQL语句 
  •      *  
  •      * @param param 
  •      */  Integer executeHql(String hql, Object[] param);  
  •      * 执行HQL语句 
  •      * @param hql 
  •      * @return 
  •   
  •  Integer executeHql(String hql, List<Object> param);  
  •   
  • }  


2. BaseDAOImpl.java

 

 

[java] copy
 
 

package import import import import import import import import @Repository"baseDAO" @SuppressWarnings"all" public BaseDAOImpl<T>  BaseDAO<T> {  

  •  SessionFactory sessionFactory;  
  •  SessionFactory getSessionFactory() {  
  •  sessionFactory;  
  •     }  
  •   
  •   setSessionFactory(SessionFactory sessionFactory) {  
  •         .sessionFactory = sessionFactory;  
  •  Session getCurrentSession() {  
  •          sessionFactory.getCurrentSession();  
  •  Serializable save(T o) {  
  •          .getCurrentSession().save(o);  
  •   delete(T o) {  
  •         .getCurrentSession().delete(o);  
  •   update(T o) {  
  •         .getCurrentSession().update(o);  
  •   saveOrUpdate(T o) {  
  •         .getCurrentSession().saveOrUpdate(o);  
  •  List<T> find(String hql) {  
  •          .getCurrentSession().createQuery(hql).list();  
  •  List<T> find(String hql, Object[] param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.length > ) {  
  •              ( i = ; i < param.length; i++) {  
  •  q.list();  
  •  List<T> find(String hql, List<Object> param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.size() > ) {  
  •              ( i = ; i < param.size(); i++) {  
  •  q.list();  
  •  List<T> find(String hql, Object[] param, Integer page, Integer rows) {  
  •          (page ==  || page < ) {  
  • ;  
  •         }  
  •  (rows ==  || rows < ) {  
  •             rows = ;  
  • .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.length > ) {  
  •              ( i = ; i < param.length; i++) {  
  •  q.setFirstResult((page - ) * rows).setMaxResults(rows).list();  
  •  List<T> find(String hql, List<Object> param, Integer page, Integer rows) {  
  •          (page ==  || page < ) {  
  • ;  
  •         }  
  •  (rows ==  || rows < ) {  
  •             rows = ;  
  • .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.size() > ) {  
  •              ( i = ; i < param.size(); i++) {  
  •  q.setFirstResult((page - ) * rows).setMaxResults(rows).list();  
  •  T get(Class<T> c, Serializable id) {  
  •          (T) .getCurrentSession().get(c, id);  
  •  T get(String hql, Object[] param) {  
  •         List<T> l = .find(hql, param);  
  •  (l !=  && l.size() > ) {  
  •              l.get();  
  •  {  
  •              ;  
  •  T get(String hql, List<Object> param) {  
  • .find(hql, param);  
  •          (l !=  && l.size() > ) {  
  •  l.get();  
  •         }  {  
  •  ;  
  •         }  
  •  Long count(String hql) {  
  •          (Long) .getCurrentSession().createQuery(hql).uniqueResult();  
  •  Long count(String hql, Object[] param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.length > ) {  
  •              ( i = ; i < param.length; i++) {  
  •  (Long) q.uniqueResult();  
  •  Long count(String hql, List<Object> param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.size() > ) {  
  •              ( i = ; i < param.size(); i++) {  
  •  (Long) q.uniqueResult();  
  •  Integer executeHql(String hql) {  
  •          .getCurrentSession().createQuery(hql).executeUpdate();  
  •  Integer executeHql(String hql, Object[] param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.length > ) {  
  •              ( i = ; i < param.length; i++) {  
  •  q.executeUpdate();  
  •  Integer executeHql(String hql, List<Object> param) {  
  •         Query q = .getCurrentSession().createQuery(hql);  
  •  (param !=  && param.size() > ) {  
  •              ( i = ; i < param.size(); i++) {  
  •  q.executeUpdate();  
  • }  



 

3. UserService.java

 

 

[java] copy
 
 

package import import public UserService {  

  •   
  •   saveUser(User user);  
  •       
  •   updateUser(User user);  
  •       
  •  User findUserById( id);  
  •       
  •   deleteUser(User user);  
  •       
  •  List<User> findAllList();  
  •       
  •  User findUserByNameAndPassword(String username, String password);  
  • }  


4. UserServiceImpl.java

 

 

[java] copy
 
 

package import import import import import import @Service"userService" public UserServiceImpl  UserService {  

  •   
  •  BaseDAO<User> baseDAO;  
  •   
  •   
  •       saveUser(User user) {  
  •   
  •   updateUser(User user) {  
  •         baseDAO.update(user);  
  •   
  •      User findUserById( id) {  
  •  baseDAO.get(User., id);  
  •     }  
  •   
  •   deleteUser(User user) {  
  •         baseDAO.delete(user);  
  •   
  •      List<User> findAllList() {  
  •  baseDAO.find(   
  •  User findUserByNameAndPassword(String username, String password) {  
  •          baseDAO.get( Object[] { username, password });  
  • }  


5. LoginAction

 

 

[java] copy
 
 

package import import import import import import import @Controller public LoginAction  ActionSupport {  

  •     serialVersionUID = 1L;  
  •   
  •  UserService userService;  
  •       
  •  String username;  
  •      String password;  
  •  String login(){  
  •  (user != ) {  
  • , username);  
  •              SUCCESS;  
  •  {  
  •              ERROR;  
  •  String getUsername() {  
  •  username;  
  •     }  
  •   setUsername(String username) {  
  •         .username = username;  
  •  String getPassword() {  
  •  password;  
  •     }  
  •   setPassword(String password) {  
  •         .password = password;  
  • }  


6. Util.java

 

 

[java] copy
 
 

package import import import import import import import import /** 

  •  */ public Util {  
  •      * 对字符串进行MD5加密 
  •      * @param str 
  •      */   String md5Encryption(String str) {  
  • ;  
  •          {  
  • );  
  •             BASE64Encoder base =  BASE64Encoder();  
  • )));  
  •         }  (Exception e) {  
  •  newStr;  
  •     }  
  •      * 判断字符串是否为空 
  •      *  
  •      *            字符串 
  •      */    isNull(String str) {  
  •  (str !=  && !str.trim().equals()) {  
  •              ;  
  •  {  
  •              ;  
  • }  

7.User.java

[java] copy
 
 

package import import import import import import import import @Entity public User {  

  •  Integer id;  
  •  String userName;  
  •      String password;  
  •  String address;  
  •      String phoneNumber;  
  •  Date createTime;  
  •      Date updateTime;  
  •   
  • (name = , strategy = )  
  •      (generator = )  
  • (name = , length=)  
  •      Integer getId() {  
  •  id;  
  •     }  
  •   setId(Integer id) {  
  •         .id = id;  
  • (name = , length = )  
  •  String getUserName() {  
  •          userName;  
  •   setUserName(String userName) {  
  • .userName = userName;  
  •     }  
  • (name = , length = )  
  •      String getPassword() {  
  •  password;  
  •     }  
  •   setPassword(String password) {  
  •         .password = password;  
  • (name = , length = )  
  •  String getAddress() {  
  •          address;  
  •   setAddress(String address) {  
  • .address = address;  
  •     }  
  • (name = , length = )  
  •      String getPhoneNumber() {  
  •  phoneNumber;  
  •     }  
  •   setPhoneNumber(String phoneNumber) {  
  •         .phoneNumber = phoneNumber;  
  • (TemporalType.TIMESTAMP)  
  • (name = )  
  •      Date getCreateTime() {  
  •  createTime;  
  •     }  
  •   setCreateTime(Date createTime) {  
  •         .createTime = createTime;  
  • (TemporalType.TIMESTAMP)  
  • (name = )  
  •      Date getUpdateTime() {  
  •  updateTime;  
  •     }  
  •   setUpdateTime(Date updateTime) {  
  •         .updateTime = updateTime;  
  • }  



六. JSP文件

 

1. login.jsp

 

[html] copy
 
 

<= = =%  

  • %  
  •  = .getContextPath();  
  • String  = .getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  • >   
  • > >  =  
  • >>  = =>  = =>  = =>  = =>  = =  
  •          <link rel="stylesheet" type="text/css" href="styles.css"> 
  •   
  • > >  = =>  = =/>/>  = =/>/>  = =/> = =/> > > </>  


2. success.jsp

 

 

[html] copy
 
 

<= = =%  

  • %  
  •  = .getContextPath();  
  • String  = .getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  • >   
  • > >  =  
  • >>  = =>  = =>  = =>  = =>  = =  
  •          <link rel="stylesheet" type="text/css" href="styles.css"> 
  •   
  • > > > </>  

 

posted on 2015-11-04 14:01  SOHOJOYCE  阅读(201)  评论(0)    收藏  举报

导航