今天学习了hibernate的配置,初步建成了一个hibernate项目,能够对数据库进行操作
1.在eclipse中新建一个java项目,并且在项目下新建文件夹lib,用于存放hibernate的相关jar包
2.在hibernate官网(http://hibernate.org/orm/downloads/)下载相应的jar包(楼主下载的是4.3.1),并且引入lib中,然后加入classpath中
hibernate3.jar 必须使用的包
cglib-asm.jar,hibernate用来实现po字节码的动态生成,很核心的库
dom4j.jar是一个java的xml api,类似于jdom,用它来读写xml文件的
odmg.jar ODMG是一个ORM规范 ,hibernate试下了ODMG规范,必须使用的一个jar包
commons-collection.jar是Apache Commons 包中的一个,包含了一些Apache开发的集合类,功能比java.util更强大
conmmons-beanutils.jar包含了一些bean工具类
commons-lang.jar 包含了一些数据类型工具类是java.lang.*的扩展
commons-logging.jar包含了日志功能,必须使用的jar包
剩下的是可选的
3.引入相关jar包(核心jar包为hibernate3.jar)
4.接下来就可以开始写代码了
hibernate中有两个重要的配置文件,一个是hibernate.cfg.xml(hibernate.properties这两种格式的配置文件都可以,但一般通用的是xml格式),另外一个是属性配置文件user.hbm.xml
hibernate.cfg.xml文件是hibernate的配置文件,主要配置session-factory,包括一些数据库的连接等属性
.hbm.xml配置文件用来对数据库对象和java对象的映射文件,主要是配置包,类和数据库表
下面的代码是一个简单的项目的两个配置文件
1.hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--方言,告诉是哪种类型的数据库-->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/Event
</property>
<!-- 操作数据库 -->
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">mysql</property>
<property name="show_sql">true</property>
<!-- <property name="hbm2ddl.auto">update</property>-->
<property name="format_sql">true</property>
<!-- zheli you create-drop create update validate sanzhong -->
<property name="hbm2ddl.auto">create-drop</property>
<mapping resource="com/hgs/po/Event.hbm.xml" />
</session-factory>
</hibernate-configuration>
2.event.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">
<hibernate-mapping package="com.hgs.po">
<!--通过class 属性 和数据库映射起来 class中有一个属性table 如果不填 默认关联到数据库是用类名来命名 -->
<class name="Event" >
<!-- 专门用来映射主键 name代表属性名字 column 可以指定列名 不写的话默认为name的名字 -->
<!-- unsaved-value="" 这个属性用来对应对象状态,如果是空对应为瞬时状态 -->
<id name="id" >
<!-- 通过内置的 生成主键 native是其中的一种 -->
<generator class="native" />
</id>
<!-- 不同性质的属性用property指定 主键和普通属性 -->
<property name="title" />
<property name="date" />
</class>
</hibernate-mapping>
这两个文件映射关联的类,下面是我项目中包和类的关系