Hibernate整合Spring(java项目)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34207422/article/details/78749110

1、首先需要创建一个maven的java项目,添加对应的依赖(4个Spring的依赖和一个hibernate的依赖)pom.xml文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.iflytek</groupId>
  <artifactId>firstSpringHibernate</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.13.RELEASE</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-orm</artifactId>
		    <version>4.3.13.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.11.Final</version>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
	</dependencies>
  
</project>
保存之后在手动buildpath添加ojdbc的驱动,之后会得到如下图的jar文件

2、添加配置文件applicationContext.xml文件,配置数据库的驱动连接和sessionFactory的初始化对象

<?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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        
        <!-- 配置可以使用Spring注解 -->
    <context:component-scan base-package="com.iflytek"></context:component-scan>
	
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
		<property name="url" value="jdbc:oracle:thin:@172.16.130.35:1521:orcl"></property>
		<property name="username" value="uuid"></property>
		<property name="password" value="uuid"></property>
	</bean>
	
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="packagesToScan" value="com.iflytek.domain"></property>
		<property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
            </props>
		</property>
	</bean>
	
	
</beans>
对应的还有其他属性文件,这里还有用log4j.property的日志文件,打印日志的,意义不大,所以不多做说明了。

3、写java pojo的代码配置注释生成对应的数据库表

(也可以通过hbm.xml文件配置数据表,但是需要在在ApplicationContext.xml文件中配置sessionfatcory加上如下:

 <property name="mappingResources">

        <list>

           <value>xxx/xxx/model/User.hbm.xml</value>

        </list>

      </property>

      <property name="hibernateProperties">
,这里用注解的方法生成

User类

package com.iflytek.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

//把user对象创建(默认的名字为:对象的名字小写),然后加入到容器中
@Entity
@Table(name="t_user1")
public class User {

	private int id;
	
	private String name;

	@Id
	public 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;
	}

}
4、写java代码需要的其他文件,如service层,dao层和测试类等

UserService.java

package com.iflytek.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.iflytek.dao.UserDao;

@Service
public class UserService {
	
	@Resource
	private UserDao userDao;

	public UserService() {
	}
	public UserService(UserDao userDao) {
		this.userDao = userDao;
		System.out.println("userservice construct run...");
	}
	
}

UserDao.java

package com.iflytek.dao;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.stereotype.Repository;

import com.iflytek.domain.User;

@Repository
public class UserDao {
	
	@Resource
	private SessionFactory sessionFactory;

	public void save() {
		
		Session session = sessionFactory.openSession();
		Transaction tx = session.beginTransaction();

		User user = new User();
		user.setId(1001);
		user.setName("testsaveuser");
		
		session.save(user);
		
		tx.commit();
		session.close();
		
	}
}

测试类App.java

package com.iflytek.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.iflytek.dao.UserDao;

public class App {

	public static void main(String[] args) {

		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		UserDao bean = context.getBean(UserDao.class);
		
		bean.save();
	}
}

5、结果

会在数据库中生成一张t_user1的数据表,添加一条id为1001的数据,如下图


综:存初学者个人学习,相互交流,不喜勿喷。


猜你喜欢

转载自blog.csdn.net/qq_34207422/article/details/78749110