您的位置:首页 > 其它

基于Annotation注解整合SSH框架和基于XML文件配置Bean整合SSH框架

2017-12-06 15:46 429 查看
1.新建一个动态web工程添加jar包

2.在com.digital.entity包下创建实体类UserInfo与数据中digital数据表user_Info对应 创建映射UserInfo.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.digital.entity">
<class name="UserInfo" table="user_info" catalog="digital">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="userName" type="java.lang.String">
<column name="userName" length="16" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="16" not-null="true" />
</property>
</class>
</hibernate-mapping>
使用Annotation完成UserInfo实体类与数据表的映射关系
@Entity
@Table(name = "user_info", catalog = "digital")
public class UserInfo {
对类中的属性进行映射 -主键属性
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public int getId() {
1234对非主属性
@Column(name = "userName", length = 16)
public String getUserName() {
return userName;
使用注解类后,就不在需要UserInfo.hbx.xml映射文件删除3.Spring整合hibernate目的-由Spring的IOC容器来管理Hibernate的SessionFactory让Hibernate使用Spring的声明式事务实现:在src文件下创建Spring配置文件applicationContextxml基于xml配置数据源dataSource配置hibernate的sessionFactory实例声明hibernate事务管理器、定义事务通知、定义切面、将事务通知和切面组合起来加入c3p0数据源(实例化数据源)
<!-- 配置数据源 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql:///digital" />
<property name="user" value="root" />
<property name="password" value="123456" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
</bean>
<!-- 配置Hibernate的sessionFactory实例 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 配置数据源属性 -->
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- 配置 Hibernate的基本属性-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
123456789101112131415配置Hibernate的映射文件的位置名称(引用注入UserInfo.hbx.xml)
<!-- 配置 Hibernate映射文件的位置及名称-->
<property name="mappingResources">
<list>
<value>com/digital/entity/UserInfo.hbm.xml</value>
</list>
</property>
</bean>
定义Hibernate事务管理器Bean(为TransactionManager事务管理器属性name=“SessionFactory”引用ref= SessionFactory实例,注入事务管理器中)
<!-- 声明Hibernate事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
123456

声明式事务管理也有两种常用的方式

基于tx和aop名字空间的xml配置文件基于@Transactional注解。显然基于注解的方式更简单易用,更清爽。开启注释处理器
<!-- 开启注解处理器 -->
<context:annotation-config />
123基于@Transactional注解方式的事务管理
<!-- 开启Spring的Bean自动扫描机制来检查与管理Bean实例 -->
<context:component-scan base-package="com.digital" />
12开启自动扫描机制检查与管理Bean实例
<tx:annotation-driven transaction-manager="transactionManager" />
定义UserInfoDAOImpl类的Bean并且类中的属性name=sessionFactory 注入实例ref=SessionFactory
<!-- 定义com.digital.dao.impl.UserInfoDAOImpl类-->
<bean id="userInfoDAO" class="com.digital.dao.impl.UserInfoDAOImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
使用注解@Repository(”userInfoDAO”)在Spring容器中注册一个userInfoDAO实例
@Repository("userInfoDAO")
public class UserInfoDAOImpl implements UserInfoDAO {
12使用注解@Autowired完成SessionFactory属性的注入
// 通过@Autowired注解注入Spring容器中的SessionFactory实例
@Autowired
SessionFactory sessionFactory;
定义Bean为在UserInfoServiceImpl类中的属性name=”userInfoDAO“注入ref=“userInfoDAO”实例
<!-- 定义UserInfoServiceImpl类,并为其userInfoDAO属性注入值-->
<bean id="userInfoService" class="com.digital.service.impl.UserInfoServiceImpl">
<property name="userInfoDAO" ref="userInfoDAO" />
</bean>
1234使用@Service注解:在Service服务层实例化UserInfoServiceImpl类放入Spring容器中
//使用@Transactional注解实现事务管理
@Transactional
//使用@Service注解在Spring容器中注册名为userInfoService的UserInfoServiceImpl实例
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
//使用@Autowired注解注入UserInfoDAOImpl实例
@Autowired
 UserInfoDAO userInfoDAO;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate xml