maven配置hibernate

本文为原创,转载请注明 来至: http://blog.csdn.net/j903829182/article/details/38147659

1.进入cmd创建一个web项目并导入myeclipse中修改好目录结构和配置好项目的属性,详细的我这里就不说了,具体请参照我的博客:http://blog.csdn.net/j903829182/article/details/38128777里面有具体的创建配置的方法和步骤,这这里我主要讲解下怎么使用maven来配置管理hibernate

我这里主要参考的是hibernate3.6.10里面的官方,文档,我也是主要按照官方文档写得这个小例子。看文档可以提高自己的学习能力,和阅读理解能力,可以多看看官方的文档,因为他是最权威的。

2.要使用maven管理hibernate首先就应该导入hibernate的配置依赖包,所以我们先写pom.xml文件。

<span style="font-size:18px;"><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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.wj.hibernate</groupId>
  <artifactId>maven3</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>maven3 Maven Webapp</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>

     <!-- 添加Hibernate依赖 -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>3.6.10.Final</version>
    </dependency>

    <!-- 添加Log4J依赖 -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.16</version>
    </dependency>

    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-nop</artifactId>
       <version>1.6.4</version>
    </dependency>

    <!-- 添加javassist -->
    <dependency>
       <groupId>javassist</groupId>
       <artifactId>javassist</artifactId>
        <version>3.12.0.GA</version>
    </dependency>

    <!-- mysql数据库的驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

  </dependencies>
  <build>
    <finalName>maven3</finalName>
  </build>
</project>
</span>

在这里先看hibernate的配置需要的包,数据库的包配置,你先忽略,我接下来会讲解。

3.接下来我们创建一个类,用来代表那些我们希望储存在数据库里的 event,这是一个具有一些属性的简单 JavaBean 类:

<span style="font-size:18px;">package org.hibernate.tutorial.domain;

import java.util.Date;

public class Event {

	private Long id;//id
    private String title;//标题
    private Date date;//日期
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public Date getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.date = date;
	}

}
</span>

把这个文件保存到
src/main/java/org/hibernate/tutorial/domain
目录下。

4.配置hibernate的映射文件,Hibernate 需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 Hibernate 映射文件发挥作用的地方。映射文件告诉
Hibernate 它应该访问数据库(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。

<span style="font-size:18px;"><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.hibernate.tutorial.domain">

    <class name="Event" table="EVENTS">

        <id name="id" column="EVENT_ID">

            <generator class="native"/>

        </id>

        <property name="date" type="timestamp" column="EVENT_DATE"/>

        <property name="title"/>

    </class>

</hibernate-mapping

>
</span>

把这个映射文件保存为 src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml

5.Hibernate 配置.你应该有了持久化类和它的映射文件。现在是配置 Hibernate 的时候了

创建文件hibernate.cfg.xml并把这个文件保存为src/main/resources 目录下。注意maven的资源文件根据预定都放在src/main/resources 目录下。

hibernate.cfg.xml里面的代码:

<span style="font-size:18px;"><?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 -->
        <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <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  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>
        <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
</span>

6.添加mysql数据库的驱动包。由于mysql数据驱动包,不是maven的是我本地的所以我要是引用的话,需要依据的一定的规则,把数据库的驱动包放到指定的目录下面,最后在pom.xml文件里面配置如下

<span style="font-size:18px;"><!-- mysql数据库的驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency></span>

对于maven管理本地的包和maven管理各种数据库,详细的可以参考

http://blog.163.com/[email protected]/blog/static/119907206201210223827126/

7.编译测试一下,我们的项目是否有问题

我们将用 Maven 构建这个教程。你将需要安装 Maven;你可以从Maven 下载页面获得 Maven。Maen 将读取我们先前创建的/pom.xml
并知道执行基本的项目任务。首先,让我们运行 compile 目标来确保我们可以编译到目前为止的所有程序:

使用CMD窗口,进入当前项目的根目录:

第一条命令:输入mvn compile

注意:这里一定要成功啊,即   BUILD SUCCESS

第二条命令:输入mvn test-compile

同样的,这里一定要 BUILD SUCCESS

8启动和辅助类

是时候来加载和储存一些Event 对象了,但首先我们得编写一些基础的代码以完成设置。我们必须启动 Hibernate,此过程包括创建一个全局的SessoinFactory,并把它储存在应用程序代码容易访问的地方。SessionFactory
可以创建并打开新的Session。一个 Session 代表一个单线程的单元操作,org.hibernate.SessionFactory 则是个线程安全的全局对象,只需要被实例化一次。

我们将创建一个HibernateUtil 辅助类(helper class)来负责启动 Hibernate 和更方便地操作org.hibernate.SessionFactory。让我们来看一下它的实现:

package org.hibernate.tutorial.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

	//定义静态的SessionFactory,产生单例,只生成一个SessionFactory
	private static final SessionFactory sessionFactory = buildSessionFactory();

//用来初始化SessionFactory
    private static SessionFactory buildSessionFactory() {

        try {

            // Create the SessionFactory from hibernate.cfg.xml

            return new Configuration().configure().buildSessionFactory();

        }

        catch (Throwable ex) {

            // Make sure you log the exception, as it might be swallowed

            System.err.println("Initial SessionFactory creation failed." + ex);

            throw new ExceptionInInitializerError(ex);

        }

    }
    //得到SessionFactory
    public static SessionFactory getSessionFactory() {

        return sessionFactory;//返回SessionFactory的对象

    }

}

把这段代码保存为src/main/java/org/hibernate/tutorial/util/HibernateUtil.java

这个类不但在它的静态初始化过程(仅当加载这个类的时候被 JVM 执行一次)中产生全局的org.hibernate.SessionFactory,而且隐藏了它使用了静态 singleton 的事实。它也可能在应用程序服务器中的 JNDI 查找org.hibernate.SessionFactory

再次编译这个应用程序应该不会有问题。最后我们需要配置一个日志(logging)系统 — Hibernate 使用通用日志接口,允许你在 Log4j 和 JDK 1.4 日志之间进行选择。多数开发者更喜欢 Log4j:从 Hibernate 的发布包中(它在etc/ 目录下)拷贝
log4j.properties 到你的src 目录,与
hibernate.cfg.xml 放在一起。看一下配置示例,如果你希望看到更加详细的输出信息,你可以修改配置。默认情况下,只有 Hibernate 的启动信息才会显示在标准输出上。

示例的基本框架完成了 — 现在我们可以用 Hibernate 来做些真正的工作。

9加载并存储对象

package org.hibernate.tutorial;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.tutorial.domain.Event;
import org.hibernate.tutorial.util.HibernateUtil;

public class EventManager {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		EventManager mgr = new EventManager();
        //if (args[0].equals("store")) {
          mgr.createAndStoreEvent("My Event4", new Date());//调用函数插入数据
        //}
        HibernateUtil.getSessionFactory().close();
	}
	private void createAndStoreEvent(String title, Date theDate) {

		//得到目前运行的session
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();

        session.beginTransaction();//开始事务
        Event theEvent = new Event();//创建bean对象
        theEvent.setTitle(title);//设置标题
        theEvent.setDate(theDate);//设置日期
        session.save(theEvent);//保存对象
        session.getTransaction().commit();//提交事务

    }

}

10.项目结构

11.由于我在hibernate.cfg.xml中采用了<property name="hbm2ddl.auto">update</property>这句话,所以,可以不用手动创建表,自动会给我创建。

12.直接右击EventManager这个类,选择run as ---〉java Application运行,看console有sql语言打印出来,你在到数据库里面看看表,里面已经插入了数据了。

13.总结,至此maven配置hibernate已经全部,讲解完了,至于日志我导入了,但是没用,把log4j.properties的代码页贴出来:

### direct log messages to stdout ###
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

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

log4j.properties是放在src/main/resources/目录下面的

后台插入数据是打印的数据信息:

Hibernate:

insert

into

EVENTS

(EVENT_DATE, title)

values

(?, ?)

时间: 2024-10-14 08:26:08

maven配置hibernate的相关文章

Maven导入Hibernate遇到问题

今天尝试通过Maven导入Hibernate,但一直有问题,jar无法下载. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.5.4-Final</version> </dependency> 去Maven仓库上去找,发现只有pom文件,没有jar包. 对比别人的配置之后,发现

Maven+Struts+Hibernate+Spring简单项目搭建

这段时间学习如何使用Maven+Struts+Hibernate+Spring注解方式建立项目,在这里感谢孙宇老师.    第一次写博客,主要是方便自己查看,同时分享给大家,希望对大家有所帮助,我也是刚入行的小菜鸟,可能有些地方不对,希望不对的地方,大家可以提出来,共同进步. 项目使用的工具是eclipse,数据库使用的是mysql,项目主要是用注解方式实现三大框架的整合. 首先使用maven建立项目,这里简单介绍一下. 第一步:右击new->other->Maven Project,如下图:

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任...... 直接上代码: 使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了.嗯,可以跑起来... 先上项目结构: 新建maven项目,选择web,然后配置pom: <pro

使用maven构建hibernate

1:建立maven project 2:pom中添加hibernate支持包 1 <dependency> 2 <groupId>mysql</groupId> 3 <artifactId>mysql-connector-java</artifactId> 4 <version>5.1.31</version> 5 </dependency> 6 7 <dependency> 8 <group

Maven配置使用Nexus

陈科肇 =========== 1.描述 要使用Nexus,你需要配置Maven去检查Nexus而非公共的仓库.为此你必须到用户特定settings.xml配置mirror(镜像),比如:默认的用户特定settings.xml位于C:\Users\Administrator\.m2\下. 2.使用Nexus中央代理仓库 settings.xml文件中设置: <?xml version="1.0" encoding="UTF-8"?> <settin

在Eclipse-jee-neon中配置Hibernate(jbosstools)

这个星期非常忙碌,但坚持写博客,我先说的就是,这几周都是围绕Eclipse的安装插件,之后我会更加对我所学习到的知识来进行总结,由于我的周末都非常疲劳,所以我就配步骤的图片就不po文字了,看过我之前的博客都知道这些都是简单的配置.Eclipse-jee-neon中配置Hibernate插件主要用到jbosstools. 访问http://tools.jboss.org/downloads/

Maven学习总结(一副本)——Maven配置和搭建

环境准备: JDK 1.6 Maven 3.0.4 myeclipse 8.6.1 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个. 首先去官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz 下载完成之后将其解压,我将解压后的文件夹重命名成 maven,并将它放在

Hibernate笔记①--myeclipse制动配置hibernate

Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. Hibernate笔记①--myeclipse制动配置hibernate

spring配置hibernate的sessionFactory的几种方法

分类: JAVA Spring Hibernate 2013-01-27 20:47  1851人阅读  评论(0)  收藏  举报 spring配置hibernate的sessionFactory 之前用spring2+hibernate3+struts2开发了一个彩信发布系统,由于第一次使用此架构,造成applicationContext.xml中的配置非常冗长,而且经常因为更改一个小配置项(例:数据库ip.用户名.密码等)将此文件作修改,这及不利于项目维护,万一粗心造成其他地方变动,会对本