第一章Hibernate开发与实战学习

首先要做一下准备工作,即获得所有的jar包和相应的工具。

1.myeclipse ---7.0 +

2.Oracle------(mysql)均可

3.数据库的驱动--本人用的是oracle的 ---ojdbc14.jar

4.到www.hibernate.org 网站上下载最新的hibernate框架,我用的是hibernate-distribution-3.3.2.GA,解压缩后,打开可以看到hibernate3.jar,这是hibernate的核心包,但是仅仅这一个包是不够的,他还需要别的依赖库。打开该文件下的lib下,会发现有一个required文件夹,里面都是所需的依赖库。但是还是少一个slf4.jar的实现类。

easy,下载一个即可,直接到slf4官方网址下载即可。下载解压之后,slf4j-simple-1.5.10.jar。最新的即可。然后此时这些包便构成了,应用hibernate的最小核心库。共八个文件。

他们是:antlr-2.7.6.jar,commons-collections-3.1.jar,dom4j-1.6.1.jar,hibernate3.jar,

javassist-3.9.0.GA.jar,jta-1.1.jar,slf4j-api-1.5.10.jar,slf4j-simple-1.5.10.jar

 

准备工作做完了后,就要进行实践了。

第一步,建立一个java project,名为chapter01_first

第二步,建立自己的书库库表格.可以通过pl/sql工具建立,也可以sql建立,均可。同时建立了一个序列,如果用mysql的就不用这样了,mysql中提供了自动增加的功能。

     表格的sql语句为:

drop table guestbook;
create table GUESTBOOK
(
ID NUMBER(8) not null primary key,    --留言id
NAME  VARCHAR2(20) not null,            --留言者的姓名
PHONE VARCHAR2(20),                        --留言者的电话号码
EMAIL VARCHAR2(20),                          --留言者的email
TITLE VARCHAR2(80) not null,              --留言的标题
CONTENT VARCHAR2(2000),                 --留言内容
CREATE_TIME DATE not null                  --留言创建的日期
);
 create sequence  gb_seq increment by 1 start with 1 nocycle;  --id 的序列

第三步,建立持久化类,与这个表对应:

package com.crazy.exmples;

import java.util.Date;

public class GuestBook {
	
	//对应数据库中的字段,该类叫做持久化类
	private  Integer id;
	private String name;
	private String email;
	private String phone;
	private String title;
	private String content;
	private Date createTime;
	getters and setters......
	
}

 第四步,配置数据库,把hibernate.cfg.xml从下载的框架里的tutorials中拷贝出该文件,放在src目录下。

<?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>

        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:ora92</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">2</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle9iDialect</property>

        <!-- Enable Hibernate's current session context -->
        <property name="current_session_context_class">thread</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">false</property>

         <!--指定数据库映射的配置文件所在路径-->
        <mapping resource="com\crazy\examples\GuestBook.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

 

第五步,配置映射关系,再从中拷贝出用于映射持久化类和数据库表的配置文件,user.hbm.xml。重新命名为GuestBook.hbm.xml,放在和GuestBook所在的包中。

<?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.crazy.examples">

	<class name="GuestBook" table="GUESTBOOK" lazy="true">
		<comment>Users may bid for or sell auction items.</comment>
		
		<id name="id">
			<generator class="sequence">
			<param name="sequence">gb_seq</param>
			</generator>
		</id>
		
		<property name="name" column="name" type="java.lang.String"/>
		<property name="email" column="email" type="java.lang.String"/>
		<property name="title" column="title" type="java.lang.String"/>
		<property name="content" column="content" type="java.lang.String"/>
		<property name="phone" column="phone" type="java.lang.String"/>
		<property name="createTime" column="create_time" type="java.util.Date"/>		
		
	</class>
	
</hibernate-mapping>

 基本工作完毕。

最后是测试工作,编写一个HibernateText的测试类

package com.crazy.examples;

import java.util.Date;

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

public class HibernateTest {

	public static void main(String[] args) {

		GuestBook gb = new GuestBook();
		gb.setName("test");
		gb.setEmail("test");
		gb.setPhone("7758521");
		gb.setTitle("test");
		gb.setContent("test");
		gb.setCreateTime(new Date());
		
	
		
		//load the config files
		Configuration config = new Configuration();
		config.configure();
		
		SessionFactory sessionFactory = config.buildSessionFactory();
		Session session = sessionFactory.getCurrentSession();
		Transaction tx = session.beginTransaction();
		session.save(gb);
		tx.commit();
                sessionFactory.close();
	}

}
 

运行,可以考单console中会出现很多记录信息,并且还会显示调用的sql。

最后,查看数据库,看是否插入了词条数据。

代码中有很多<br>,要删除。第一次写这么长的文章,写给自己看的如果有朋友看,则更好。

你可能感兴趣的:(oracle,sql,Hibernate,mysql,jdbc)