配置没啥好说的,就是添加jar包。
直接上例子吧:
使用工具: Eclipse for JEE版 , SQLServer2000.
Eclipse里新建工程,选择Java Project,起名Test,这里为了简便,我们只建个java小工程,用函数入口来做测试。
新建的工程里只有src一个目录,自己在Test下建个文件夹,然后把hibernate的jar包全部放入,然后右键单击Test总目录,--Build Path--Configure Build Path--Java Build Path--Libraries--Add JARS,把Test工程下的lib包里的jar全部选中,OK。
因为用的是SQLServer2000数据库,这里有个问题,通常我们会使用SQLServer2000的三个jar包来使用JDBC,在这里由于hibernate和SQLServer2000的jar包有冲突,因为我们需要另一个包,jtds-1.2.jar,下载地址为:http://sourceforge.net/projects/jtds/files/。
我们使用SQLServer里自带的库pubs,在里面新建个表users,有id,username,password三个字段,其中id是主键。
接下来在Src目录下建一个POJO(普通的类),起名Users,包名com.vo作为持久化数据的类,内容如下:
- package com.vo;
- public class User {
- private Integer id;
- private String username;
- private String password;
- public Integer getId() {
- return id;
- }
- public void setId(Integer 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;
- }
- }
在com.vo包内建个xml文件,起名Users.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.vo.Users" table="Users">
- <id name="id">
- <generator class="assigned" />
- </id>
- <property name="username" />
- <property name="password" />
- </class>
- </hibernate-mapping>
在src目录下建个xml文件,起名:hibernate.cfg.xml,这个是hibernate的系统配置文件,内容如下:
- <?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>
- <property name="show_sql">True</property>
- <property name="dialect">
- org.hibernate.dialect.SQLServerDialect
- </property>
- <property name="connection.username">sa</property>
- <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
- <property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;databasename=pubs</property>
- <mapping resource="com/vo/Users.hbm.xml" />
- </session-factory>
- </hibernate-configuration>
在com.vo包中再建个类,用来测试,起名Test.java,内容如下:
- package com.vo;
- import org.hibernate.HibernateException;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import org.hibernate.cfg.Configuration;
- public class Test {
- public static void main(String[] args) {
- try {
- org.hibernate.SessionFactory sf = new Configuration().configure()
- .buildSessionFactory();
- Session session = sf.openSession();
- Transaction tx = session.beginTransaction();
- User user = new User();
- user.setId(1);
- user.setUsername("name1");
- user.setPassword("pass1");
- session.save(user);
- tx.commit();
- session.close();
- } catch (HibernateException e) {
- e.printStackTrace();
- }
- }
- }
最后运行Test.java。
我们来简单分析一下各文件的作用:
①hibernate.cfg.xml:是用来建立数据库的连接,指定操作的数据库类型以及声明Java类到数据库表的映射文件名称(也就是本例中的Users.hbm.xml),还可以配置一下hibernate的系统参数。
②Users.java:和我们平时写的数据类(get/set)是一样的,只不过这里的属性的数据类型都选用了对象类型,即不用int而用Integer来定义,这样可以解决数据库中null数据的表示,因为对象类型可以有null值,而基本数据类型没有。
③Users.hbm.xml:描述了Java的类Users的属性和表Users的字段之间的对应关系,正式有了这个xml文件,才使得hibernate的API函数可以把对对象的操作自动转换为对数据库的SQL语句操作。