<property name="hibernate.current_session_context_class">thread</property>
1. 先导入Hibernate相关的jar包: hibernate-release-4.2.4.Final/hibernate-release-4.2.4.Fina4.2.4.Final/lib/required下的所有包; hibernate-release-4.2.4.Final/hibernate-release-4.2.4.Final/lib/optional/c3p0下的: c3p0-0.9.2.1.jar; 数据库驱动: MySQL:mysql-connector-java-5.1.40-bin.jar; Oracle11g:ojdbc14.jar(product/11.2.0/dbhome_1/owb/wf/lib) 2. 在src下建Hibernate配置文件:hibernate.cfg.xml:(Mysql为例)
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- 配置Hibernate的基本信息 --> <!-- 1.数据源配置到IOC容器中,在此处不需要再配置 --> <!-- 2.关联的.hbm.xml也在IOC容器配置SessionFactory实例是配置 --> <!-- 3.在这里配置Hibernate的基本属性:方言、是否显示sql语句、格式化输出、生成数据表策略及二级缓存 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <property name="hibernate.current_session_context_class">thread</property> <!-- 配置二级缓存 的相关属性--> </session-factory></hibernate-configuration>3.建持久化类: 在src下建包,eg:com.ren.spring.hibernate.entities(VO.model)
Account.java:
package com.ren.spring.hibernate.entities;public class Account { private Integer id; private String name; private double balance;//余额 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; }}Book.java:
package com.ren.spring.hibernate.entities;public class Book { private Integer id; private double price; private String bookName; private String isbn;//书号 private int stock;//库存 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public int getStock() { return stock; } public void setStock(int stock) { this.stock = stock; }}4.在相应包下建相应持久类的Hibernate映射文件:持久类名.hbm.xml Account.hbm.xml:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-2-28 21:06:54 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="com.ren.spring.hibernate.entities.Account" table="SH_ACCOUNT"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <property name="balance" type="double"> <column name="BALANCE" /> </property> </class></hibernate-mapping>Book.hbm.xml:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-2-28 21:06:54 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="com.ren.spring.hibernate.entities.Book" table="SH_BOOK"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="price" type="double"> <column name="PRICE" /> </property> <property name="bookName" type="java.lang.String"> <column name="BOOK_NAME" /> </property> <property name="isbn" type="java.lang.String"> <column name="ISBN" /> </property> <property name="stock" type="int"> <column name="STOCK" /> </property> </class></hibernate-mapping>5.导入Spring相关的jar包: (1)Spring下的包; (2)日志相关的包:commons-logging-1.1.1.jar; (3)与aop相关的包:aspectj.weaver.jar 、 spring-aspects.jar和aopalliance.jar(http://blog.csdn.net/yajing8/article/details/59005765); 6.在src下建数据库配置文件: db.properties:
jdbc.user=rootjdbc.password=123456jdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql://localhost:3306/数据库名jdbc.initPoolSize=5jdbc.maxPoolSize=107.新建一个测试源码文件夹test:(测试) 在其下建相应包和测试类: TestSpringHibernate.java:
package com.ren.spring.hibernate.test;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import javax.sql.DataSource;import org.junit.Test;import org.springframework.context.applicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.ren.spring.hibernate.service.BookShopService;import com.ren.spring.hibernate.service.Cashier;public class TestSpringHibernate { private BookShopService bookShopService = null; private Cashier cashier = null; private ApplicationContext context = null; { context = new ClassPathXmlApplicationContext("applicationContext.xml"); bookShopService = (BookShopService) context.getBean(BookShopService.class); cashier = context.getBean(Cashier.class); } @Test public void testBookShopService() throws SQLException { bookShopService.purchase("zs", "1001"); } @Test public void testCashier() throws SQLException { List<String> isbns = new ArrayList<>(); isbns.add("1001"); isbns.add("1002"); cashier.checkout("zs", isbns); } @Test public void testDataSopurce() throws SQLException { DataSource dataSource = context.getBean(DataSource.class); System.out.println(dataSource.getConnection());//com.mchange.v2.c3p0.impl.NewProxyConnection@2a8bf658 }}8.相应的数据库表:
新闻热点
疑难解答