成功搭配好了HIbernate配置环境---Hibernate-3.6.3
2011-04-30 11:58
295 查看
--------------------------------------------- 多看文档,对身体好 ------------------------------------------------------------------------------
事先准备
Hibernate-3.6.3(hibernate-distribution-3.6.3.Final-dist.zip)的压缩包 地址:
www.hibernate.org
slf4j-1.6.1(slf4j-1.6.1.zip)的压缩包 地址:http://www.slf4j.org/download.html
----我在CSDN也上传了一份
我建立的是一个JavaProject。
1.新建一个Java工程
2.导入hibernate所需要的各种包
hibernate3.jar------------------------------Hibernate核心包
antlr-2.7.6.jar-------------------------------Hibernate必须的包
commons-collections-3.1.jar--------------------------Hibernate必须的包
dom4j-1.6.1.jar--------------------------Hibernate必须的包
javassist-3.12.0.GA.jar--------------------------Hibernate必须的包
jta-1.1.jar--------------------------Hibernate必须的包
slf4j-api-1.6.1.jar--------------------------Hibernate必须的包(slf4j的api包)
hibernate-jpa-2.0-api-1.0.0.Final.jar--Jpa需要的包(不要可能会报错)
slf4j-nop-1.6.1.jar-------------------------slf4j的实现包
(嗯,以上的差不多了,如果需要annotation的话,还需要下载annotation的包---这里不解释了==谷歌+电驴)
3.查文档创建我的第一个Hibernate实例——HelloWord(文档的原例)
3.1接下来我们创建一个类,用来代表那些我们希望储存在数据库里的 event,这是一个具有一些属性的简单 JavaBean 类:
你可以看到这个类对属性的存取方法(getter and setter
method)使用了标准 JavaBean
命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate
也可以直接访问这些 field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。
把这个文件保存到
目录下。
3.2映射文件
Hibernate
需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 Hibernate 映射文件发挥作用的地方。映射文件告诉
Hibernate 它应该访问数据库(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。
下面是一个完整的映射文件----------名字可以自己设置*.hbm.xml一般都是这个格式
当实体类的属性名和数据库表的字段名一样的时候,我们就可以省去column=“column_name” 可以直接这么写
name属性表表示实体的属性名字 column表示字段名字
3.3Hibernate的配置文件
下面是一个配置文件的示例hibernate.cfg.xml(名字最好是这个,免得需改,或者出一些没必要的错误)----在src目录下面建立
3.4测试Hibernate--Helloworld
----------------------------------多看文档,此处的SessionFactory最好是弄成单例模式,免得以后总是加载---------------------------------
前面是原理分析,和注意事项
下面是我的列子
-src
-package:com.xwl.hibernate.entity
-class:User.java
-xml:User.hbm.xml
-package:com.xwl.hibernate.main
-class:Test.java
-xml:hibernate.cfg.xml
User.java
User.hbm.xml
Test.java
hibernate.cfg.xml
事先准备
Hibernate-3.6.3(hibernate-distribution-3.6.3.Final-dist.zip)的压缩包 地址:
www.hibernate.org
slf4j-1.6.1(slf4j-1.6.1.zip)的压缩包 地址:http://www.slf4j.org/download.html
----我在CSDN也上传了一份
我建立的是一个JavaProject。
1.新建一个Java工程
2.导入hibernate所需要的各种包
hibernate3.jar------------------------------Hibernate核心包
antlr-2.7.6.jar-------------------------------Hibernate必须的包
commons-collections-3.1.jar--------------------------Hibernate必须的包
dom4j-1.6.1.jar--------------------------Hibernate必须的包
javassist-3.12.0.GA.jar--------------------------Hibernate必须的包
jta-1.1.jar--------------------------Hibernate必须的包
slf4j-api-1.6.1.jar--------------------------Hibernate必须的包(slf4j的api包)
hibernate-jpa-2.0-api-1.0.0.Final.jar--Jpa需要的包(不要可能会报错)
slf4j-nop-1.6.1.jar-------------------------slf4j的实现包
(嗯,以上的差不多了,如果需要annotation的话,还需要下载annotation的包---这里不解释了==谷歌+电驴)
3.查文档创建我的第一个Hibernate实例——HelloWord(文档的原例)
3.1接下来我们创建一个类,用来代表那些我们希望储存在数据库里的 event,这是一个具有一些属性的简单 JavaBean 类:
package org . hibernate . tutorial . domain ; import java . util . Date ; public class Event { private Long id ; private String title ; private Date date ; public Event () {} public Long getId () { return id ; } private void setId ( Long id ) { this . id = id ; } public Date getDate () { return date ; } public void setDate ( Date date ) { this . date = date ; } public String getTitle () { return title ; } public void setTitle ( String title ) { this . title = title ; } }
你可以看到这个类对属性的存取方法(getter and setter
method)使用了标准 JavaBean
命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate
也可以直接访问这些 field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。
把这个文件保存到
src/main/java/org/hibernate/tutorial/domain
目录下。
3.2映射文件
Hibernate
需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 Hibernate 映射文件发挥作用的地方。映射文件告诉
Hibernate 它应该访问数据库(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。
下面是一个完整的映射文件----------名字可以自己设置*.hbm.xml一般都是这个格式
<?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" > [...] </ hibernate-mapping >
< 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 >
当实体类的属性名和数据库表的字段名一样的时候,我们就可以省去column=“column_name” 可以直接这么写
< property name = "title" />
name属性表表示实体的属性名字 column表示字段名字
3.3Hibernate的配置文件
下面是一个配置文件的示例hibernate.cfg.xml(名字最好是这个,免得需改,或者出一些没必要的错误)----在src目录下面建立
<?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" > <!--需要注意的是这里的和前面的映射文件不一致, 最好是copy文档--> < hibernate-configuration > < session-factory > <!-- Database connection settings --> < property name = "connection.driver_class" > org.hsqldb.jdbcDriver </ property > < property name = "connection.url" > jdbc:hsqldb:hsql://localhost </ property > < property name = "connection.username"> sa </ property > < property name = "connection.password" ></ property > <!--以上都是一些数据库的配置,相信大家都不陌生--> <!-- JDBC connection pool (use the built-in) --> < property name = "connection.pool_size" > 1 </ property > <!--这里是Hibernate数据库连接池的设置,可以不用--> <!-- SQL dialect --> < property name = "dialect" > org.hibernate.dialect.HSQLDialect </ property > <!--这里是Hibernate的方言,每种数据库的都不一样,应为本人比较喜欢MySQL 所以用org.hibernate.dialect.MySQLDialect这句--> <!-- 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 > <!--是否显示SQL语句--> <!-- Drop and re-create the database schema on startup --> < property name = "hbm2ddl.auto" > update </ property > <!--SQL DDL语句的类型--> < mapping resource = "org/hibernate/tutorial/domain/Event.hbm.xml" /> <!--mapping 很重要, 就是映射文件的路径名--> </ session-factory > </ hibernate-configuration >
3.4测试Hibernate--Helloworld
User user = new User(); user.setId(25); user.setUsername("xwl617"); user.setEmail("xwl@xwl.com"); user.setLocation("CS"); user.setPassword("123456"); user.setQuestion("asdsa?"); user.setAnswer("asa"); //添加属性 Configuration cfg = new Configuration(); SessionFactory sf=cfg.configure().buildSessionFactory(); Session session = sf.openSession();//得到session此处的session为org.hibernate.Session包下面的; session.beginTransaction();//开始传送 session.save(user);//保存对象 session.getTransaction().commit();//提交对象 session.close();//关闭资源 sf.close();
----------------------------------多看文档,此处的SessionFactory最好是弄成单例模式,免得以后总是加载---------------------------------
前面是原理分析,和注意事项
下面是我的列子
-src
-package:com.xwl.hibernate.entity
-class:User.java
-xml:User.hbm.xml
-package:com.xwl.hibernate.main
-class:Test.java
-xml:hibernate.cfg.xml
User.java
package com.xwl.hibernate.entity; public class User { private int id; private String username; private String password; private String email; private String location; private String question; private String answer; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question = question; } public String getAnswer() { return answer; } public void setAnswer(String answer) { this.answer = answer; } }
User.hbm.xml
<?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="com.xwl.hibernate.entity"> <class name="User" table="user"> <id name="id" column="Id"></id> <property name="username" column="_name"> </property> <property name="password"></property> <property name="email"></property> <property name="location"></property> <property name="question"></property> <property name="answer"></property> </class> </hibernate-mapping>
Test.java
package com.xwl.hibernate.main; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.xwl.hibernate.entity.User; public class Test { public static void main(String[] args) { User user = new User(); user.setId(25); user.setUsername("xwl617"); user.setEmail("xwl@xwl.com"); user.setLocation("CS"); user.setPassword("123456"); user.setQuestion("asdsa?"); user.setAnswer("asa"); Configuration cfg = new Configuration(); SessionFactory sf=cfg.configure().buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); session.save(user); session.getTransaction().commit(); System.out.println("commit"); session.close(); sf.close(); } }
hibernate.cfg.xml
<?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">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/test</property> <property name="connection.username">root</property> <property name="connection.password">123</property> <!-- JDBC connection pool (use the built-in) --><!-- database pool --> <!-- <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> <!-- Drop and re-create the database schema on startup --> <!-- <property name="hbm2ddl.auto">update</property> --> <mapping resource="com/xwl/hibernate/entity/User.hbm.xml" /> </session-factory> </hibernate-configuration>
相关文章推荐
- osgi 环境下 hibernate 4 配置
- Windows XP+Apache 2.2.4+PHP 5.2.0+MySQL 5.0.27+Zend Optimizer 3.2.0环境配置方法(依此参考文献成功安装Apache,Php,mysql)
- Spring+Spring MVC+Hibernate环境搭配
- 菜鸟学习Hibernate——配置Hibernate环境
- Struts 2+Spring 3+Hibernate 3.3 在MyEclipse 10环境下的整合配置
- eclipse3.3搭配sun_java_me_sdk-3.0 开发J2ME 环境配置
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- 环境变量的配置不成功的解决方法
- Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装.
- hibernate-distribution-3.6.0.CR2 环境配置
- Hibernate环境搭建跟配置
- Spring-4.0.1+Hibernate-4.3.2+Struts-2.3.16环境配置(包含hibernate二级缓存和spring缓存)
- [原创]手把手配置Hibernate环境(JBuilderX版)
- struts hibernate spring 环境配置时出现 HTTP Status 404 Servlet action is not available (解决方法)
- 【Hibernate】——查询缓存环境配置
- 学习Hibernate——配置Hibernate环境
- Swift学习笔记(一)搭配环境以及代码运行成功
- MyEclipse+Struts+Hibernate+Mysql开发环境配置
- hibernate环境配置
- 菜鸟学习Hibernate——配置Hibernate环境