`

spring_hibernate_xml

 
阅读更多
一、实体类
public class User {
	private int id;
	private String name;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
}

对应数据库映射文件
<?xml version="1.0"?>
<!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.job.model">

    <class name="User" table="Users">
        <id name="id" column="USER_ID">
            <generator class="native"/>
        </id>
        <property name="name" type="java.lang.String">
            <column name="name">
            </column>
        </property>
    </class>

</hibernate-mapping>


二.处理DAO接口
public interface UserDAO {
	public void save(User u);
}

对应处理DAOImpl实现
@Component
public class UserDAOImpl implements UserDAO{
	
	private SessionFactory sessionFactory;
	
	public void save(User u) {
			try {
				Session s = sessionFactory.openSession();
				s.beginTransaction();
				s.save(u);
				s.getTransaction().commit();
			} catch (Exception e) {
				e.printStackTrace();
			}
	}

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	@Resource(name="sessionFactory")
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
}

将在spring容器内的sessionFactory注入到处理层中,处理数据

三。服务层
@Component
public class UserService {
	
	private UserDAO userDAO;
	
	public void add(User u){
		this.userDAO.save(u);
	}

	public UserDAO getUserDAO() {
		return userDAO;
	}
	@Resource(name="userDAOImpl")
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}
}

将DAOImpl实现bean注入到服务层,供Action调用。

四、spring容器applicationContext.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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
	<!-- 配置自动装配 AutowiredAnnotationBeanPostProcessor等接口,实现注入等功能 -->
	<context:annotation-config/>
	<!-- 配置扫描包路径,将包下所有组件实例化 -->
	<context:component-scan base-package="com.job"/>
	<!-- 声明一个处理实现类 -->
	<bean id="userDAOImpl" class="com.job.dao.UserDAOImpl">
		<!-- 将sessionFactory注入到处理实理类中 -->
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<!-- 在spring容器中,创建数据库连接Bean -->
    <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
    </bean>
	<!-- 创建hibernate的sessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    	<!-- 将spring容器中存在的数据库连接Bean,配置到sessionFactory中 -->
        <property name="dataSource" ref="DataSource"/>
        <!-- 配置hibernate映射实体对象到表的文件 -->
        <property name="mappingResources">
            <list>
                <value>com/job/model/user.hbm.xml</value>
            </list>
        </property>
        <!-- 配置hibernate属性,方言,显示sql,是否创建数据表 -->
        <property name="hibernateProperties">
        	<props>
        		<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        		<prop key="hibernate.show_sql">true</prop>
        		<prop key="hibernate.hbm2ddl.auto">update</prop>
        	</props>
        </property>
    </bean>

</beans>


五、测试
public class UserServiceTest {
	public static void main(String[] args) {
		ApplicationContext ac =  new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService service = (UserService)ac.getBean("userService");
		User u = new User();
		u.setName("haha success!!");
		service.add(u);
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics