Spring+Hibernate 整合_1
目录结构:
1 package com.helen.model; 2 3 import javax.persistence.Entity; 4 import javax.persistence.Id; 5 import javax.persistence.Table; 6 7 import org.springframework.stereotype.Component; 8 9 @Entity 10 @Table(name = "user12") 11 @Component 12 public class User { 13 private int userId; 14 15 @Id 16 17 public int getUserId() { 18 return userId; 19 } 20 21 public void setUserId(int userId) { 22 this.userId = userId; 23 } 24 25 private String username; 26 private String password; 27 28 public String getUsername() { 29 return username; 30 } 31 32 public void setUsername(String username) { 33 this.username = username; 34 } 35 36 public String getPassword() { 37 return password; 38 } 39 40 public void setPassword(String password) { 41 this.password = password; 42 } 43 44 @Override 45 public String toString() { 46 return "User [username=" + username + ", password=" + password + "]"; 47 } 48 49 }
1 package com.helen.dao; 2 3 import com.helen.model.User; 4 5 public interface UserDAO { 6 void addUser(User user); 7 }
1 package com.helen.dao; 2 3 import javax.annotation.Resource; 4 5 import org.hibernate.Session; 6 import org.hibernate.SessionFactory; 7 import org.hibernate.Transaction; 8 import org.springframework.stereotype.Component; 9 import com.helen.model.User; 10 11 @Component("userDao") 12 public class UserDAOImpl implements UserDAO { 13 14 private SessionFactory sessionFactory; 15 16 public SessionFactory getSessionFactory() { 17 return sessionFactory; 18 } 19 20 @Resource 21 public void setSessionFactory(SessionFactory sessionFactory) { 22 this.sessionFactory = sessionFactory; 23 } 24 25 public void addUser(User user) { 26 27 Session s = null; 28 Transaction tx = null; 29 try { 30 s = sessionFactory.openSession(); 31 tx = s.beginTransaction(); 32 s.save(user); 33 tx.commit(); 34 System.out.println("add!\n" + user); 35 } catch (Exception e) { 36 tx.rollback(); 37 System.out.println("rollback"); 38 } finally { 39 if (s != null) { 40 s.close(); 41 } 42 } 43 44 } 45 46 }
1 package com.helen.service; 2 3 import javax.annotation.Resource; 4 import org.springframework.stereotype.Component; 5 6 import com.helen.dao.UserDAO; 7 import com.helen.model.User; 8 9 @Component 10 public class UserService { 11 private UserDAO userDao; 12 13 public UserDAO getUserDao() { 14 return userDao; 15 } 16 17 @Resource(name = "userDao") 18 public void setUserDao(UserDAO userDao) { 19 this.userDao = userDao; 20 } 21 22 public void addUserService(User user) { 23 userDao.addUser(user); 24 } 25 26 }
Test.java:
1 package com.helen.test; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 import com.helen.model.User; 7 import com.helen.service.UserService; 8 9 10 11 public class Test { 12 public static void main(String arg[]){ 13 14 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 15 UserService userService = context.getBean("userService", UserService.class); 16 User user=(User) context.getBean("user"); 17 user.setUserId(1223); 18 user.setUsername("helen"); 19 user.setPassword("123123"); 20 userService.addUserService(user); 21 } 22 23 }
beans.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 4 xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 5 xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 6 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> 9 10 <context:annotation-config /> 11 <context:component-scan base-package="com.helen" /> 12 13 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 14 15 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 16 <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /> 17 <property name="username" value="system" /> 18 <property name="password" value="123456" /> 19 <!-- 连接池启动时的初始值 --> 20 <property name="initialSize" value="1" /> 21 <!-- 连接池的最大值 --> 22 <property name="maxActive" value="300" /> 23 <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> 24 <property name="maxIdle" value="2" /> 25 <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> 26 <property name="minIdle" value="1" /> 27 28 </bean> 29 30 <bean id="sessionFactory" 31 32 class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 33 <property name="dataSource" ref="dataSource" /> 34 <property name="annotatedClasses"> 35 <list> 36 <value>com.helen.model.User</value> 37 </list> 38 </property> 39 <property name="hibernateProperties"> 40 <props> 41 <prop key="hibernate.dialect"> 42 org.hibernate.dialect.Oracle10gDialect 43 </prop> 44 <prop key="hibernate.show_sql">true</prop> 45 <prop key="hbm2ddl.auto">update</prop> 46 </props> 47 </property> 48 49 </bean> 50 51 </beans>
dataSource 修改为:
1 jdbc.driverClassName=oracle.jdbc.driver.OracleDriver 2 jdbc.url=jdbc:oracle:thin:@localhost:1521:xe 3 jdbc.username=system 4 jdbc.password=123456
beans.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 4 xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 5 xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 6 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> 9 10 <context:annotation-config /> 11 <context:component-scan base-package="com.helen" /> 12 13 <!-- <context:property-placeholder location="classpath:jdbc.properties" /> --> 14 <bean 15 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 16 <property name="locations"> 17 <value>classpath:jdbc.properties</value> 18 </property> 19 </bean> 20 21 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 22 destroy-method="close"> 23 <property name="driverClassName" value="${jdbc.driverClassName}" /> 24 <property name="url" value="${jdbc.url}" /> 25 <property name="username" value="${jdbc.username}" /> 26 <property name="password" value="${jdbc.password}" /> 27 <!-- 连接池启动时的初始值 --> 28 <property name="initialSize" value="1" /> 29 <!-- 连接池的最大值 --> 30 <property name="maxActive" value="2" /> 31 <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> 32 <property name="maxIdle" value="2" /> 33 <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> 34 <property name="minIdle" value="1" /> 35 </bean> 36 37 <bean id="sessionFactory" 38 39 class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 40 <property name="dataSource" ref="dataSource" /> 41 <property name="annotatedClasses"> 42 <list> 43 <value>com.helen.model.User</value> 44 </list> 45 </property> 46 <property name="hibernateProperties"> 47 <props> 48 <prop key="hibernate.dialect"> 49 org.hibernate.dialect.Oracle10gDialect 50 </prop> 51 <prop key="hibernate.show_sql">true</prop> 52 <prop key="hbm2ddl.auto">update</prop> 53 </props> 54 </property> 55 </bean> 56 57 60 61 </beans>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。