一.Hibernate原生状态


​​?​​


1


2


3


4


5

​​Configuration cfg = ​​ ​​new​​ ​​ Configuration().configure();​​





​​SchemaExport export = ​​ ​​new​​ ​​ SchemaExport(cfg);​​





​​export.create(​​ ​​true​​ ​​, ​​ ​​true​​ ​​);​​





二.Hibernate整合Spring

1.使用hibernate.cfg.xml原生配置

hibernate.cfg.xml同原生一样编写
在Spring主配置文件applicationContext中,引入hibernate.cfg.xml
使用SchemaExport生成数据库表的代码同上一致。

​​?​​




​​Spring applicationContext.xml​​





​​<​​ ​​bean​​ ​​ id​​ ​​=​​ ​​"sessionFactory"​​





​​class​​ ​​=​​ ​​"org.springframework.orm.hibernate3.LocalSessionFactoryBean"​​ ​​>​​





​​<​​ ​​property​​ ​​ name​​ ​​=​​ ​​"configLocation"​​





​​value​​ ​​=​​ ​​"file:src/hibernate.cfg.xml"​​ ​​>​​





​​</​​ ​​property​​ ​​>​​





​​</​​ ​​bean​​ ​​>​​





2.不使用hibernate.cfg.xml,在Spring的主配置文件applicationContext.xml中配置

完全不编写hibernate.cfg.xml,全部都在applicationContext.xml中配置


​​?​​


1


2


3


4


5


6


7


8


9


10


11


12


13

​​ClassPathResource ac = ​​ ​​new​​ ​​ ClassPathResource(​​ ​​"applicationContext.xml"​​ ​​);​​





​​XmlBeanFactory xbf = ​​ ​​new​​ ​​ XmlBeanFactory(ac);​​





​​//注意: &sessionFactory ,一定要包含 & ,不加Spring返回的是Hibernate下的SessionFactoryImpl类​​





​​LocalSessionFactoryBean lsfb=(LocalSessionFactoryBean) xbf.getBean(​​ ​​"&sessionFactory"​​ ​​);​​





​​Configuration cfg=lsfb.getConfiguration();​​





​​SchemaExport export=​​ ​​new​​ ​​ SchemaExport(cfg);​​





​​export.create(​​ ​​true​​ ​​, ​​ ​​false​​ ​​);​​








​​?​​




1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

​​<!-- 配置数据源-->​​



​​<​​​ ​​​bean​​​ ​​​ id​​​ ​​​=​​​ ​​​"dataSource"​​​ ​​​ class​​​ ​​​=​​​ ​​​"org.springframework.jdbc.datasource.DriverManagerDataSource"​​​ ​​​>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"driverClassName"​​​ ​​​ value​​​ ​​​=​​​ ​​​"${jdbc.driverClassName}"​​​ ​​​/>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"url"​​​ ​​​ value​​​ ​​​=​​​ ​​​"${jdbc.url}"​​​ ​​​/>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"username"​​​ ​​​ value​​​ ​​​=​​​ ​​​"${jdbc.username}"​​​ ​​​/>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"password"​​​ ​​​ value​​​ ​​​=​​​ ​​​"${jdbc.password}"​​​ ​​​/>​​



​​</​​​ ​​​bean​​​ ​​​>​​







​​<!-- 配置sessionfactory,该配置替代了hibernate.cfg.xml的配置 -->​​



​​<​​​ ​​​bean​​​ ​​​ id​​​ ​​​=​​​ ​​​"sessionFactory"​​​ ​​​ class​​​ ​​​=​​​ ​​​"org.springframework.orm.hibernate3.LocalSessionFactoryBean"​​​ ​​​>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"dataSource"​​​ ​​​ ref​​​ ​​​=​​​ ​​​"dataSource"​​​ ​​​></​​​ ​​​property​​​ ​​​>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"mappingResources"​​​ ​​​>​​



​​<​​​ ​​​list​​​ ​​​>​​



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



​​</​​​ ​​​list​​​ ​​​>​​



​​</​​​ ​​​property​​​ ​​​>​​



​​<​​​ ​​​property​​​ ​​​ name​​​ ​​​=​​​ ​​​"hibernateProperties"​​​ ​​​>​​



​​<​​​ ​​​props​​​ ​​​>​​



​​<​​​ ​​​prop​​​ ​​​ key​​​ ​​​=​​​ ​​​"hibernate.dialect"​​​ ​​​>org.hibernate.dialect.MySQLDialect</​​​ ​​​prop​​​ ​​​>​​



​​<​​​ ​​​prop​​​ ​​​ key​​​ ​​​=​​​ ​​​"hibernate.show_sql"​​​ ​​​>true</​​​ ​​​prop​​​ ​​​>​​



​​<​​​ ​​​prop​​​ ​​​ key​​​ ​​​=​​​ ​​​"hibernate.format_sql"​​​ ​​​>true</​​​ ​​​prop​​​ ​​​>​​



​​</​​​ ​​​props​​​ ​​​>​​



​​</​​​ ​​​property​​​ ​​​>​​



​​</​​​ ​​​bean​​​ ​​​>​​