首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

spring跟hibernate初步整合(annotation)

2013-09-28 
spring和hibernate初步整合(annotation)bean.xml?xml version1.0 encodingUTF-8?beans xmlnsht

spring和hibernate初步整合(annotation)

bean.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd           http://www.springframework.org/schema/context           http://www.springframework.org/schema/context/spring-context-2.5.xsd"><context:component-scan base-package="com.test"></context:component-scan><bean id="myDataSource" destroy-method="close">    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>    <property name="url" value="jdbc:oracle:thin:@localhost:1521:oralsb"/>    <property name="username" value="scott"/>    <property name="password" value="tiger"/></bean><!-- annotation版 --><bean id="mySessionFactory" ref="myDataSource"/><property name="annotatedClasses"><list>        <value>com.test.model.User</value></list>    </property>    <property name="hibernateProperties">    <props>        <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>        <prop key="hibernate.show_sql">true</prop>        <prop key="hibernate.format_sql">true</prop>        <prop key="hibernate.hbm2ddl.auto">create</prop>    </props>    </property>  </bean></beans>

?

模型类

User.java

package com.test.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {private int id;private String name;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

?

接口

UserDAO.java

package com.test.dao;import com.test.model.User;public interface UserDAO {public void save(User user);}

?

实现接口类

UserDAOImpl.java

package com.test.dao.impl;import javax.annotation.Resource;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.stereotype.Component;import com.test.dao.UserDAO;import com.test.model.User;@Component("userDAOImpl")public class UserDAOImpl implements UserDAO {private SessionFactory sessionFactory;public SessionFactory getSessionFactory() {return sessionFactory;}@Resource(name = "mySessionFactory")public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}public void save(User user) {Session session = sessionFactory.openSession();session.beginTransaction();session.save(user);session.getTransaction().commit();session.close();}}

?

服务类

UserService.java

package com.test.service;import javax.annotation.Resource;import org.springframework.stereotype.Component;import com.test.dao.UserDAO;import com.test.model.User;@Component("userService")public class UserService {private UserDAO userDAO;public void add(User user) {userDAO.save(user);}public UserDAO getUserDAO() {return userDAO;}// 这里会找注解Component的值为:userDAOImpl的那个类@Resource(name="userDAOImpl")public void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}}

?

Junit测试类

UserServiceTest.java

package com.test.service;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.test.model.User;public class UserServiceTest {@Testpublic void testAdd() throws Exception {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");UserService service = (UserService) applicationContext.getBean("userService");User u = new User();u.setName("张三");service.add(u);}}

?

热点排行