本文介绍hibernate4的maven配置,
pom.xml:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<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.abigdreamer.ark </groupId>
<artifactId>data-permission </artifactId>
<version>0.0.1-SNAPSHOT </version>
<packaging>jar </packaging>
<name>data-permission </name>
<url>http://maven.apache.org </url>
<properties>
<project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
<org.hibernate.version>4.1.2 </org.hibernate.version>
</properties>
<dependencies>
<dependency>
<groupId>junit </groupId>
<artifactId>junit </artifactId>
<version>4.10 </version>
<scope>test </scope>
</dependency>
<dependency>
<groupId>cglib </groupId>
<artifactId>cglib </artifactId>
<version>2.2.2 </version>
</dependency>
<dependency>
<groupId>log4j </groupId>
<artifactId>log4j </artifactId>
<version>1.2.14 </version>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>mysql </groupId>
<artifactId>mysql-connector-java </artifactId>
<version>5.1.21 </version>
</dependency>
<!-- hibernate 4.3.0 start -->
<dependency>
<groupId> org.hibernate </groupId>
<artifactId> hibernate-core </artifactId>
<version> 4.3.0.Final </version>
</dependency>
<dependency>
<groupId> org.hibernate.javax.persistence </groupId>
<artifactId> hibernate-jpa-2.0-api </artifactId>
<version> 1.0.1.Final </version>
</dependency>
<dependency>
<groupId> org.hibernate </groupId>
<artifactId> hibernate-ehcache </artifactId>
<version> 4.3.0.Final </version>
</dependency>
<dependency>
<groupId> org.hibernate </groupId>
<artifactId> hibernate-validator </artifactId>
<version> 5.1.0.Alpha1 </version>
</dependency>
<dependency>
<groupId> org.hibernate.common </groupId>
<artifactId> hibernate-commons-annotations </artifactId>
<version> 4.0.4.Final </version>
</dependency>
<!-- hibernate 4.3.0 end -->
</dependencies>
</project>
Hibernate.cfg.xml的配置:
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
<?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>
<!-- Database connection settings,Sql2000与2005有区别,此处是SQL2005的 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="connection.url">jdbc:mysql://localhost:3306/permission </property>
<property name="connection.username">root </property>
<property name="connection.password">darkness </property>
<!-- JDBC connection pool (use the built-in) Hibernate自带的连接池,一般不用,注释掉! -->
<!-- <property name="connection.pool_size">1</property> -->
<!-- SQL dialect(方言)用于指定何种数据库,可以在Hibernate的文档中查到 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect </property>
<!-- Enable Hibernate's automatic session context management -->
<!-- <property name="current_session_context_class">thread</property> -->
<!-- Disable the second-level cache 二级缓存,优化Hibernate时再说! -->
<property name="cache.provider_class">
org.hibernate.cache.NoCacheProvider
</property>
<!-- Echo all executed SQL to stdout 是否显示生成的SQL生成语句!开发时,一定要显示,方便调试! -->
<property name="show_sql">true </property>
<!-- 使显示的sql格式化 -->
<property name="format_sql">true </property>
<!-- Drop and re-create the database schema on startup hbm是Hibernate Maping
ddl是数据定义语句 这句话的意思是:是否要Hibernate指定映射成数据定义语句。 -->
<!-- <property name="hbm2ddl.auto">update</property> -->
<!--设置自动生成数据库表,update时自动更新表结构
<property name="hibernate.hbm2ddl.auto">create</property>
-->
<mapping resource="com/abigdreamer/ark/permission/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
配置好hibernate后,我们来写一个测试,需要一个Entity类User,代码如下:
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
package com.abigdreamer.ark.permission ;
/**
*
*
* @author Darkness
* @date 2013-6-7 上午11:12:55
* @website http://www.abigdreamer.com
* @version V1.0
*/
public class User implements java. io. Serializable {
private static final long serialVersionUID = 1L ;
public User ( ) {
}
private int id ;
private String name ;
private int age ;
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 ;
}
public int getAge ( ) {
return age ;
}
public void setAge ( int age ) {
this. age = age ;
}
}
User的hbm配置文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.abigdreamer.ark.permission">
<class name="User" table="user">
<!-- 如果是Model类和表名一样,则table属性可以省略 -->
<id name="id" column="id"></id>
<!-- 指定数据库主键, name指定Model类中的属性,column属性指定表中的列。如果是Model类属性和列名一样,则column属性可以省略 -->
<property name="name" column="name"></property> <!-- 指定其他属性 -->
<property name="age" column="age"></property>
</class>
</hibernate-mapping>
最终写个测试类来测试配置是否成功,UserTest代码如下:
注:4.3中create session的方法又改变了
声明: 本文由(造梦师)整理编译,转载请保留链接:http://www.abigdreamer.com/programming/frameworkstudy/maven-configuration-hibernate4.html
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
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.abigdreamer.ark.permission ;
import org.hibernate.HibernateException ;
import org.hibernate.Session ;
import org.hibernate.SessionFactory ;
import org.hibernate.Transaction ;
import org.hibernate.cfg.Configuration ;
import org.hibernate.service.ServiceRegistry ;
import org.hibernate.service.ServiceRegistryBuilder ;
import org.junit.Test ;
import com.abigdreamer.ark.permission.User ;
/**
*
* @author Darkness
* @date 2013-6-7 上午11:14:23
* @website http://www.abigdreamer.com
* @version V1.0
*/
public class UserTest {
@Test
public void insertUser ( ) {
User s = new User ( ) ;
s. setId ( 3 ) ;
s. setName ( "darkness" ) ;
s. setAge ( 1 ) ;
Transaction tx = null ;
try {
// 默认读取的是sre下面的hibernate.cfg.xml
/** 此方法在Hibernate4中被标记为过时 */
// SessionFactory sf = new Configuration().configure().buildSessionFactory();
/**Hibernate4取得SessionFactory的方法 */
Configuration cfg = new Configuration ( ). configure ( ) ;
StandardServiceRegistryBuilder srb = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()); StandardServiceRegistry sr = srb.build(); SessionFactory factory = cfg.buildSessionFactory(sr);
Session session = factory.openSession(); tx = session.beginTransaction();
session. save (s ) ;
tx. commit ( ) ;
session. close ( ) ;
} catch (HibernateException e ) {
e. printStackTrace ( ) ;
try {
tx. rollback ( ) ;
} catch (HibernateException e1 ) {
e1. printStackTrace ( ) ;
}
} finally {
}
}
}