您的位置:首页 > 其它

第一个Hibernate程序(HelloWorld)

2011-12-05 21:09 309 查看

1.1.1. 创建Eclipse工程并引入相关的jar包

新建Java工程,并添加如下jar包:

1,{hibernate_home}/ hibernate3.jar

2,{hibernate_home}/lib/required/*.jar

3,{hibernate_home}/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar

1, 数据库对应的JDBC驱动(例如mysql-connector-java-5.1.5-bin.jar)

还可以加入日志相关的jar包(不加也可以):

1, log4j-1.2.15.jar

2, slf4j-log4j12-1.6.1.jar

1.1.2. 创建持久化对象:User

1.1.3. 创建对象-关系映射文件:User.hbm.xml

Customer类属性

Java类型

Hibernate类型

Cutomers字段名

Sql类型

Name

java.lang.String

string

NAME

Varchar(12)

age

int

int

age

INT

Sex

char

character

SEX

CHAR(1)

Married

boolean

boolean

married

bit

Des

java.lang.String

text

des

CLOB

Pic

byte[]

binary

pic

BLOB

Birthday

java.sql.Date

date

BIRTHDAY

DATE

registeredTime

java.sql.TimeStamp

timestamp

REGISTERED_TIME

TIMESTAMP

1.1.4. 创建 Hibernate 配置文件:hibernate.cfg.xml

创建表、JavaBean、写映射文件

1.1.5. 通过 Hibernate API 编写访问数据库的代码

编程步骤

1, 获取 Configuration 对象。

2, 获取 SessionFactory 对象。

3, 获取 Session,打开事务。

4, 用面向对象的方式操作数据库。

5, 关闭事务,关闭 Session。

增删改查功能的实现代码

(1)创建一个实体类user

(2)将hibernate所需jar包构建项目中

Mysql驱动

Hibernate3.jar

Lib/required/所有的jar文件

Lib/jpa/jar文件

(3)配置文件

hibernate.cfg.xml

hibernate.properties

驱动、url、用户名、密码、方言、自动创建表格、将hibernate工作过程中产生的sql语句输出

以及映射文件的位置

<hibernate-configuration>

<session-factory>

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="connection.url">jdbc:mysql:///demo</property>

<property name="connection.username">root</property>

<property name="connection.password">123</property>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="hibernate.hbm2ddl.auto">create</property>

<property name="hibernate.show_sql">true</property>

<mapping resource="com/hbsi/domain/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

(4)映射文件---

User---- User.hbm.xml

<hibernate-mapping

package="com.hbsi.domain"> -----指定Java实体类的包名

<class name="User" table="user"> -----说明实体类怎样映射成表

<id name="id">

<generator class="native"/>

</id>

<property name="name"/>

<property name="birthday"/>

</class>

</hibernate-mapping>

(5)写Java代码

Configuration cfg=new Configuration();

cfg.configure();//完成hibernate的初始化--读取配置文件

//SessionFactory对象----DriverManager

SessionFactory sf=cfg.buildSessionFactory();

//得Session对象

Session s=sf.openSession();

Transaction tx=s.beginTransaction();

User user=new User();

user.setName("Tom");

user.setBirthday(new Date());

s.save(user);

tx.commit();

s.close();

可能出现问题:

(1)驱动找不到

(2)unknown entity:不认识User实体类。原因在配置文件没有指明映射文件所在位置

<mapping resource="com/hbsi/domain/User.hbm.xml"/>

(3)Table“demo.user” doesnot exist:

create table user(

id int auto_increment;

name varchar(20);

birthday date;

);

在配置文件增加配置:

<property name="hbm2ddl.auto">create</property>

create-drop:在hibernate初始化时创建表,程序运行结束时表会被删除

create:在hibernate初始化时会创建表格。

update:只是根据映射文件去和数据库中的表对应起来,如果不一致就更新表结构

validate:校验映射文件和数据库中的表是不是能够对应起来,不能对应不更新表,会报错。

(4)表建好,表格中没有记录。

insert s.save(user)

<property name="show_sql">true</property>

事务

Transaction tx=s.beginTransaction();

...

tx.commit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: