结合HSQLDB测试hibernate实例 博客分类: 软件安装及使用 hsqldbhibernatejava
一、数据库结构
createtable User ( idinteger not null, namevarchar(255), passvarchar(255), primarykey (id) )
二、建立测试实例
1 、 新建普通java项目
2 、 项目下新建lib文件夹(放置引用jar包)
3、db(放置hsqlDB的数据库文件)文件夹
4 、 解压hibernate文件夹,将hibernate-release-4.0.1.Final\lib\required目录下的jar文件拷贝到项目的lib下,将hsqldb.jar(下载地址http://hsqldb.org/)拷贝到lib目录下,并引入到工程
(3、4也可建立用户库,再引入项目)
5
、 项目Src
目录下hibernate建立连接数据库的配置文件
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 是否将运行期生成的SQL输出到日志以供调试 -->
<property name="show_sql">true</property>
<!-- SQL方言,这里设定的是HSQL -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- JDBC驱动程序 -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver
</property>
<!-- JDBC URL,User为数据库名 ; hsqldb.write_delay=false持久化 -->
<property name="connection.url"> jdbc:hsqldb:file:./db/User;hsqldb.write_delay=true
</property>
<!-- 设置数据库中的表用hibernate自动建立,一般不需要不断重新建表 -->
<property name="hibernate.hbm2ddl.auto">create</property>
<!-- 数据库用户名 -->
<property name="connection.username">sa</property>
<!-- 数据库密码 -->
<property name="connection.password"></property>
<!-- 指定User的映射文件,这个地方应该在建立文件后添加到此处 -->
<mapping resource="com/hibernate/test/User.hbm.xml
" />
</session-factory>
</hibernate-configuration>
6 、 新建包:com.hibernate.test以及包下的实体类 user.java .实体通数据库映射文件 User.hbm.xml 、测试类 Test.java
7 、 实体类属性要同数据库字段名称相同,并有set和get方法
public class User { private long id; private String name; private String pass; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } }
8
、
实体类数据库映射文件一般以实体类名.hbm.xml命名:内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernate.test.User
" table="User">
<id name="id">
<generator class="increment"/>
</id>
<property name="name"/>
<property name="pass" />
</class>
</hibernate-mapping>
9、.hbm.xml中对应的实体类位置要写正确
<class name="com.hibernate.test.User " table="User">
10
、
将User.hbm.xml
添加到hibernate.cfg.xml中:使用全路径(包括包名)
<!-- 指定User的映射文件,这个地方应该在建立文件后添加到此处 -->
<mapping resource="com/hibernate/test/User.hbm.xml
" />
11 、 建立测试文件Test.java
public class Test { public static void main(String[] args) { try { SessionFactory sf = new Configuration().configure() .buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setName("李雷"); user.setPass("123456"); session.save(user); tx.commit(); session.close(); } catch (HibernateException e) { e.printStackTrace(); } } }
12 、正确 执行程序
三、查看hsqdb数据库数据
开始---->运行----->cmd
命令行输入:java -jar hsqldb所在全路径 \lib\hsqldb.jar
回车
弹出界面如下填写
连接成功界面如下
选中PUBLIC.USER右键,选择SELECT * FROM "PUBLIC"."USER",然后选择“Execute SQL”,查看执行结果
备注:
1、hibernate版本:hibernate-release-4.0.1.Final
2、hsqldb版本:hsqldb-2.2.8.zip