最近很忙,把月初学习的经历写成博客,给以后学习的人,也许有点帮助,
hibernate 是用来做数据持久化的,可以http://www.hibernate.org/ 下到
网上的例子经常出现关键的部分没有让人知道,让学习的人不太了解,我做了这个例子,
采用的是eclipse3.4,下面是项目目录结构
此为了持久化User对象,user 是一个简单的实体类,也就是pojo,我引入了两个用户库,hibernate3.2,jdbcsqlserver2005,里面是hibernate3.2和jdbc 连接sqlserver的jar,网上很多,能下到,这样,一会我我上传到我的资源里,对了,有个关键的,看下图,官网的hibernate3.2中是没有c3p0这个jar包的,这是我后来加入的,是用来做 connetion pool用的,(如果没有,那hibernate配置文件中就不要配置c3p0相关参数了,) ,可以加入,还有一个是log4j,是用来做日志的,
官网中也没有,如果项目没有包括这个,hibernate会出一个warn,但也没关系,
下面我给出两个类的代码,
hibernate采用的是session会话, session会话上引入了transaction,hibernate main中有这个的使用,
下面是两个配置文件,User.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>
<class name="tiny.entities.User" table="Person">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="username" column="username" length="15"></property>
<property name="password" column="password" length="20"></property>
<property name="address" column="Address" length="50"></property>
</class>
</hibernate-mapping>
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>
<!-- 是否显示SQL语句 -->
<property name="show_sql">true</property>
<!-- SQL数据库方言SQLServer -->
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- JDBC Driver -->
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:sqlserver://TINY/SQLSERVER2005;DatabaseName=Hibernate;</property>
<!-- 用户名-->
<property name="connection.username">sa</property>
<!-- 密码 -->
<property name="connection.password">deng</property>
<!--数据库连接池-->
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">20</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.max_statements">50</property>
<!-- 配置每次提交SQL的数量 -->
<property name=" hibernate.jdbc.batch_size">50</property>
<mapping resource="tiny/entities/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我连接 的是sqlserver2005,如果你装了sqlserver管理工具,在连接时有个对话框,那里的名可以来作上面连接字符串中的名字,databaseName就是我的数据库了,
还有就是表结构,看下图,
已经完成了,但这远远还不够,还得有关系数据库了的存储,后来文章会来给出复杂的数据结构怎么存储,对了,上面配置文件中有个id,设置generate为native意思是让hibernate自动判断数据库应该采用那一种自增方式, 而sqlserver中我已经设置id,为identity(1,1),方式增加了,