Struts2+Hibernate简单整合
来源:互联网 发布:三菱触摸屏编程软件 编辑:程序博客网 时间:2024/06/14 03:11
- 框架整合,只是将不同的框架负责不同的内容。如struts2依旧是负责控制器Controller,而Hibernate及Mybitas负责的是DAO持久层对数据进行操作。
- 步骤
- 编写DAO
O 实体并添加注解
R类
注册表
API测试
Service(Tx事务)
Struts2
包括Action:
1.Action 的类
2.成员变量收集数据
3.业务对象调用
4.页面跳转
Struts.xml文件的配置.
新建一个s2h项目进行Struts2和Hibernate的简单整合实例.
1. 导入项目所必须的jar包如下图:
其中包含了Struts2以及Hibernate的基础jar包和MySQL的jar,如果不导入mysql的jar则无法与数据库进行数据交换.
2. 在src下新建entity包建User类,设定属性并添加注解代码如下
package entity;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;/** * import javax.persistence.Entity;导入的这个包是持久化作用 * 这里使用注解将类实现持久化 *@author xpengfei *@creat 10:39:30 AM Aug 24, 2017 */@Entity@Table(name="t_user")public class User { @Id @GenericGenerator(name="user_pk",strategy="increment") @GeneratedValue(generator="user_pk") private Integer id; private String name; private String password; public User(Integer id, String name, String password) { super(); this.id = id; this.name = name; this.password = password; } public User() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", password=" + password + "]"; }}
- 导入hibernate.cfg.xml进行相关配置并进行User类的注册
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory > <property name="connection.username">root</property> <property name="connection.password">mysql</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///s2h?useUnicode=true&characterEncoding=UTF-8</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">update</property> <!-- 这里是 当调用时hibernate将session绑定到当前线程, 事务结束后hibernate将session从当前线程中释放并且关闭session--> <property name="hibernate.current_session_context_class">thread</property> <!-- 类的注册 --> <mapping class="entity.User"/> </session-factory></hibernate-configuration>
- 建立init.sql文件编写建表语句
,create table t_user( id integer primary key, name varchar(12), password varchar(12));
- 创建util包,新建HibernateUtil.Java作为SessionFactory获取session的工具类
package util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/** *@author xpengfei *@creat 10:38:37 AM Aug 24, 2017 */public class HibernateUtil { private static SessionFactory sessionFactory; static{ Configuration cfg=new Configuration(); cfg.configure(); sessionFactory=cfg.buildSessionFactory(); } public static Session openSession(){ return sessionFactory.openSession(); } public static Session getCurrentSession(){ System.out.println("获取session"); return sessionFactory.getCurrentSession(); }}
- 新建dao包,创建UserDAO接口类以及UserDAOImpl接口实现类
package dao;import entity.User;/** *@author xpengfei *@creat 10:57:46 AM Aug 24, 2017 */public interface UserDAO { public void save(User user);}
package dao;import org.hibernate.Session;import util.HibernateUtil;import entity.User;/** *@author xpengfei *@creat 10:58:44 AM Aug 24, 2017 */public class UserDAOImpl implements UserDAO{ @Override public void save(User user) { //通过工具类获取session Session session=HibernateUtil.getCurrentSession(); session.save(user); }}
- 新建service包,创建UserService接口类以及UserServiceImpl实现类
package service;import entity.User;/** *@author xpengfei *@creat 11:15:57 AM Aug 24, 2017 */public interface UserService { public void register(User user);}
package service;import org.hibernate.Transaction;import util.HibernateUtil;import dao.UserDAO;import dao.UserDAOImpl;import entity.User;/** *@author xpengfei *@creat 11:16:57 AM Aug 24, 2017 */public class UserServiceImpl implements UserService{ private UserDAO userDAO=(UserDAO) new UserDAOImpl(); @Override public void register(User user) { Transaction tx=null; try { //开启事务 tx=HibernateUtil.getCurrentSession().getTransaction(); tx.begin(); userDAO.save(user); System.out.println("UserServiceImpl"+user); tx.commit();//提交事务 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); tx.rollback(); } }}
- 编写Action,新建action包,创建UserAction类
package action;import service.UserService;import service.UserServiceImpl;import com.opensymphony.xwork2.Action;import entity.User;/** *@author xpengfei *@creat 11:22:03 AM Aug 24, 2017 */public class UserAction implements Action{ private User user; private UserService us=(UserService) new UserServiceImpl(); public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { us.register(user); return "success"; }}
- 新建struts.xml进行相关action的配置
- web.xml中进行struts2的核心控制器的配置
- 新建View目录并在其下创建reg.jsp以及result.jsp做简单的测试
- 项目根级目录
- 运行项目效果如下:
注册成功后
数据库数据表中的数据:
数据存储成功;
至此,struts2+Hibernate简单的注册整合完成.
阅读全文
0 0
- Struts2+Hibernate简单整合
- Struts2 Spring Hibernate 的简单整合
- hibernate+struts2学生信息管理系统简单整合
- Struts2+Hibernate+Spring 整合示例==》Spring整合Struts2简单示例==》Spring整合Hibernate简单示例
- 整合开发Struts2,Hibernate,Spring简单框架的搭建详解
- 整合Struts2,Hibernate和Spring的一个简单例子
- Struts2与Hibernate整合
- struts2+hibernate+spring整合
- struts2 spring hibernate 整合
- Spring struts2 hibernate 整合
- struts2+spring+hibernate整合
- Struts2和Hibernate整合
- Struts2+Hibernate+Sprint 整合
- Struts2整合Hibernate
- struts2+spring+hibernate整合
- struts2+spring+hibernate整合
- struts2整合Hibernate
- Spring、Struts2、Hibernate整合
- 配置文件使用
- Android 控件不为人知的秘密
- 简单的UDP 消息的传递以及URL文件下载
- PHP命名空间(Namespace)的使用详解
- Java 分支结构
- Struts2+Hibernate简单整合
- 最小生成树与最短路径算法
- 测试相关知识点
- 安装卸载jdk
- git 回退修复bug
- JSP:el表达式
- android studio和github进行关联和如何向README.md文件中添加图片说明
- C++ 的忠告
- Github--github结构+gitbub本地文件上传