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
|
框架 |
版本 |
所需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的目录结构
<? = =?> < =
- =
- =
- ="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- >>
- > ></> ></> > > ></> >
- > ></> ></> > =,那么在读取数据的时候,当读取了父数据后,
- > ></> ></> > ></> ></> > > > ></> ></> > > ></> ></> > > ></> > </>
2. applicationContext.xml
<? = =?> < =
- =
- =
- =
- =
- =
- =
- ="
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
- =
- = =
- => = =>> = =>> = =>> = =>> = =>> = =>> = =>> = =>> >
- =
- => => =
- > = =/>
- => > ></> > > >
- =
- => = =
- >
- = =>
- > = =
- = =
- = =
- = =
- = =
- = =
- = =
- = =
- = =
- = =
- = = =
- = = =
- = = =
- = = =
- > > = =/>>
- > =
- =
- = =
- >
- =
- </>
3. db.properties
db.driverClassNamecom
db.urljdbc
db.usernameroot
db.passwordroot
4. hibernate.cfg.xml
<? = =?>
- "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"
- <> > =></> =></> =></>
- =></> =></> =></>
- =></> =></> =></> > </>
5. struts.xml
<? = =?>
- "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(网上找的一个)
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
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
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
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
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
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
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
<= = =%
- %
- = .getContextPath();
- String = .getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- >
- > > =
- >> = => = => = => = => = =
- <link rel="stylesheet" type="text/css" href="styles.css">
- > > = => = =/>/> = =/>/> = =/> = =/> > > </>
2. success.jsp
<= = =%
- %
- = .getContextPath();
- String = .getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- >
- > > =
- >> = => = => = => = => = =
- <link rel="stylesheet" type="text/css" href="styles.css">
- > > > </>
浙公网安备 33010602011771号