基於Annotation註解整合SSH框架和基於XML檔案配置Bean整合SSH框架
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() {
- 1
- 2
- 3
- 4
對非主屬性
@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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 配置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>
- 1
- 2
- 3
- 4
- 5
- 6
宣告式事務管理也有兩種常用的方式
- 基於tx和aop名字空間的xml配置檔案
- 基於@Transactional註解。顯然基於註解的方式更簡單易用,更清爽。
- 開啟註釋處理器
<!-- 開啟註解處理器 -->
<context:annotation-config />
- 1
- 2
- 3
- 基於@Transactional註解方式的事務管理
<!-- 開啟Spring的Bean自動掃描機制來檢查與管理Bean例項 -->
<context:component-scan base-package="com.digital" />
- 1
- 2
- 開啟自動掃描機制檢查與管理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 {
- 1
- 2
- 使用註解@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>
- 1
- 2
- 3
- 4
- 使用@Service註解:在Service服務層例項化UserInfoServiceImpl類放入Spring容器中
//使用@Transactional註解實現事務管理
@Transactional
//使用@Service註解在Spring容器中註冊名為userInfoService的UserInfoServiceImpl例項
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
//使用@Autowired註解注入UserInfoDAOImpl例項
@Autowired
UserInfoDAO userInfoDAO;
相關文章
- SSH框架整合配置所需JAR包(SSH整合)框架JAR
- SSH框架整合框架
- SSH框架整合步驟薦框架
- 基於 java 註解的 csv 檔案讀寫框架Java框架
- SSH 框架整合(maven版本 xml配置方式 連線池c3p0)框架MavenXML
- 【SSH框架】系列之 Spring 整合 Hibernate 框架框架Spring
- SSM框架整合(配置檔案)SSM框架
- 【SSM框架整合】專案xml檔案、properties等檔案的配置SSM框架XML
- springmvc基於xml配置檔案SpringMVCXML
- 基於SSH框架專案使用模糊查詢的搜尋功能開發框架
- SpringCloud微服務:基於Nacos元件,整合Dubbo框架SpringGCCloud微服務元件框架
- 基於spring框架的apache shiro簡單整合Spring框架Apache
- spring上 -基於Xml配置bean筆記SpringXMLBean筆記
- SSH框架之VO配置框架
- 關於整合SSH,重新發布專案的問題
- SSH配置檔案詳解
- 使用xml檔案配置SSM整合XMLSSM
- ssh中整合spring和hibernate之後的application.xml檔案的超詳細配置SpringAPPXML
- 基於Aviator的註解驅動驗證框架框架
- 【SSH】--SSH框架簡介框架
- 3_基於註解管理Bean物件Bean物件
- 【mybatis annotation】資料層框架應用--Mybatis(二) 基於註解實現資料的CRUDMyBatis框架
- 【SSH框架初瞭解】框架
- 基於 BDD 理論的 Nebula 整合測試框架重構(下篇)框架
- 基於 BDD 理論的 Nebula 整合測試框架重構(上篇)框架
- 基於Jmeter+Maven+Jenkins持續整合介面測試框架JMeterMavenJenkins框架
- go基於grpc構建微服務框架-整合opentracingGoRPC微服務框架
- spring和ehcache整合,實現基於註解的快取實現Spring快取
- SSH框架專案總結框架
- 【SSM整合】-Maven管理SSM框架的pom.xml配置SSMMaven框架XML
- 基於AOP的MVP框架(三)GoMVP進階註解MVP框架Go
- 基於AOP的MVP框架(二)GoMVP進階註解MVP框架Go
- spring上 -基於註解配置bean,動態代理,AOP筆記SpringBean筆記
- MyBatis基於xml檔案的 CURD案例MyBatisXML
- 基於 DOM 的 XML 檔案解析類XML
- 關於 SSH 框架面試知識點的總結框架面試
- 【mybatis xml】資料層框架應用--Mybatis 基於XML對映檔案實現資料的CRUDMyBatisXML框架
- 基於Vue的多專案整合實踐Vue