使用注解方式进行spring和hibernate整合
来源:互联网 发布:淘宝兰芝官方旗舰店 编辑:程序博客网 时间:2024/05/21 14:52
整合spring和hibernate需要五个要素,分别包括持久化的类, 数据源,SessionFactory, TransactionManager和持久化操作的DAO类。
持久化类:
- @Entity
- public class Spitter {
- private long id;
- private String userName, passWord, fullName;
- public Spitter(long id, String n, String p, String f){
- this.id = id;
- this.userName = n;
- this.passWord = p;
- this.fullName = f;
- }
- public Spitter(){}
- public void setId(long id){
- this.id = id;
- }
- @Id
- public long getId(){
- return id;
- }
- public String getUserName(){
- return this.userName;
- }
- public void setUserName(String n){
- this.userName = n;
- }
- public String getPassWord(){
- return this.passWord;
- }
- public void setPassWord(String p){
- this.passWord = p;
- }
- public String getFullName(){
- return this.fullName;
- }
- public void setFullName(String f){
- this.fullName = f;
- }
- }
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/spitter" />
- <property name="username" value="root" />
- <property name="password" value="root" />
- <property name="initialSize" value="5"/>
- <property name="maxActive" value="10" />
- </bean>
SessionFactory类(在spring配置文件中配置):
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="annotatedClasses">
- <list>
- <value>Spitter.spitterOne.Spitter</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.format_sql">true</prop>
- <prop key="hibernate.hbm2ddl.auto">update</prop>
- </props>
- </property>
- </bean>
- <!-- 设定transactionManager -->
- <bean id="txManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <!--启动spring事务注解功能-->
- <tx:annotation-driven transaction-manager="txManager"/>
进行持久化操作的DAO类:
- @Repository
- public class HibernateSpitterDao implements SpitterDAO {
- private SessionFactory sessionFactory;
- @Autowired
- public HibernateSpitterDao(SessionFactory sessionFactory){
- this.sessionFactory = sessionFactory;
- }
- private Session currentSession(){
- return this.sessionFactory.getCurrentSession();
- }
- /**
- * 进行持久化的方法需要使用@Transactional进行事务管理
- */
- @Transactional(readOnly = false, rollbackFor = RuntimeException.class)
- public void addSpitter(Spitter spitter){
- this.currentSession().save(spitter);
- }
- public Spitter getSpitterById(long id){
- return (Spitter)this.currentSession().get(Spitter.class, id);
- }
- @Transactional(readOnly = false, rollbackFor = RuntimeException.class)
- public void saveSpitter(Spitter spitter){
- this.currentSession().update(spitter);
- }
- public static void main(String [] args){
- Spitter ss = new Spitter(103,"zhang sfdasf454352an", "cccninini", "zhang shan fdasfsdfewe");
- ApplicationContext ctx = new ClassPathXmlApplicationContext("Spitter/spitterOne/spring-idol.xml");
- <span style="color:#ff0000;">SpitterDAO dao = (SpitterDAO) ctx.getBean("hibernateSpitterDao");</span>
- dao.addSpitter(ss);
- }
- }
因为Spring只能对接口进行aop操作,所以红色代码部分只能将hibernateSpitterDao强制转换成SpitterDAO接口。
0 0
- 使用注解方式进行spring和hibernate整合
- 使用注解方式进行spring和hibernate整合
- 使用注解方式进行spring和hibernate整合
- Hibernate注解使用和spring整合
- spring和hibernate注解整合
- spring+hibernate+iBATIS注解方式整合
- Spring 整合 Hibernate(注解方式)
- Spring整合Hibernate(2)----注解方式
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合 .
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- Hibernate注解使用以及Spring整合
- hdu 1849 Rabbit and Grass Nim博弈
- Volley网络框架使用过程中的一些报错解决办法。
- GZIP压缩原理分析(09)——第四章 基于gzip的HTTP压缩详解(四03) 处理细节(关于流压缩的问题)以及本章总结
- HDU 1874畅通工程续【SPFA】
- (第15讲)哈希表的开放地址法中的再哈希法
- 使用注解方式进行spring和hibernate整合
- java-基础-String、StringBuilder以及StringBuffer剖析
- kafka笔记
- HDU 1875畅通工程再续【Prim】
- 解决fiddler无法添加证书和添加成功无法捕抓HTTPS
- HDU 1879继续畅通工程【Prim】
- storm安装
- Android中的Attr、Style和Theme详解
- Codeforces Round #207 (Div. 2) C - Knight Tournament