首先进行总结一下,本例子就是利用maven来创建hibernate的框架,其中用到了比较常见的hibernate和log4j的两个jar包。后台数据库用的是mysql。
新建工程的大概过程如下:
新建一个mysql数据库、表,插入测试数据-》新建一个Maven工程-》添加pom.xml依赖-》配置数据库文件、类表文件和log4j文件-》编写测试代码即可。
1、文件目录结构
2、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.test.pro</groupId> <artifactId>maven</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>maven</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.9</version> </dependency> <!-- commons-configuration 自动加载的是2.1的版本,编译时会报错,所以再加上这个 --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.5.Final</version> </dependency> <!-- 添加javassist --> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.11.0.GA</version> </dependency> <!-- 添加Log4J依赖 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.6.4</version> </dependency> <!-- MySQL database driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency> </dependencies> </project>
pom文件是非常关键的一个文件,里面指明了所有我们会用到的依赖项。其中几个关键的依赖项是:rg.hibernate、log4j、mysql这三个。
2、hibernate.cfg.xml
代码 | ![]() ![]() |
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <!-- local connection properties --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <!-- property name="hibernate.connection.pool_size"></property --> <!-- dialect for MySQL --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <mapping resource="Person.hbm.xml"/> </session-factory> </hibernate-configuration>
这个文件是指明了Java连接数据库需要的一些配置参数。
3、数据库表结构
这是我们例子的mysql的数据库以及表的结构,里面有一些测试数据,数据库的信息就是我们在第二步配置过的那些参数。
4、log4j.properties
代码 | ![]() ![]() |
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.rootLogger=debug, stdout log4j.logger.org.hibernate.tool.hbm2ddl=debug
其实这个文件对于我们学习hibernate可有可无,但是为了方便,就也放上来讲解,增加一些知识嘛。
5、SessionUtil.java
代码 | ![]() ![]() |
package com.test.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SessionUtil {
public static Session getSession()
{
SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session session = sf.openSession();
return session;
}
}
这个文件是用来读取配置,并且初始化session的会话
6、测试代码
代码 | ![]() ![]() |
package com.test.pro.maven;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Session;
import com.test.model.Person;
import com.test.utils.SessionUtil;
public class Test {
/**
* @param args
*/
private static final Logger logger = Logger.getLogger(Test.class);
public static void main(String[] args) {
Session session = SessionUtil.getSession();
org.hibernate.Transaction tx = session.beginTransaction();
String hql="from Person person";
List list= session.createQuery(hql).list();
for(int i=0;i<list.size();i++)
{
Person obj=(Person)list.get(i);
System.out.println(obj.getName());
}
logger.debug("mes!");
}
}
7、输出结果
8、工程源码下载地址
http://www.itbuluoge.com/chat/?/article/7
关键词:hibernate log4j maven
文章来自IT部落格,http://www.itbuluoge.com,版权所有,转载请注明出处!