技术开发 频道

Hibernate应用系列之三开发Demo篇


IT168技术文档
    点击“确定”,生成如下代码.
package userdmin; /* * Copyright (c) 2006,Science and Technology Of NCEPU * All rights reserved. * * FileName:User * Description:description of the file * * Version:1.0 * Author:gmplayer * FinishDate:2006.9.1 * */ public class User { private int id; private String username; private String password; /** * @return id */ public int getId() { return id; } /** * @param id 要设置的 id */ public void setId(int id) { this.id = id; } /** * @return password */ public String getPassword() { return password; } /** * @param password 要设置的 password */ public void setPassword(String password) { this.password = password; } /** * @return username */ public String getUsername() { return username; } /** * @param username 要设置的 username */ public void setUsername(String username) { this.username = username; } }
    好了,这个类完成了。它是一个普通的Java对象(Plain Old Java Objects,就是POJOs,有时候也称作Plain Ordinary Java Objects),表示一个数据集合。下面建立一个Hbm文件将这个类映射到数据库的表格上。 

    3. 映射文件 
    右键点击HibernateDemo下的src文件,通过”新建—>文件”,来建立一个名为”User.hbm.xml”的文件,文件内容如下:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.1.dtd"> <hibernate-mapping> <class name="useradmin.User" table="Users"><!--把类和数表关联起来--> <id name="id" unsaved-value="null"> <!--id的产生方式是assigned--> <generator class="assigned" /> </id> <property name="username" type="string" /><!--映射用户姓名--> <property name="password" type="string" /><!--映射用户密码--> </class> </hibernate-mapping>
    其中,代码中useradmin.User表示,类名为useradmin包下的User类,表为数据库中的Users表.
这个XML文件定义了对象属性映射到数据库表的关系,这里采用了assigned(程序设置)方式生成主键。 

    4. 配置文件 
    Hibernate可以使用XML或属性文件来进行配置,配置文件名默认为“hibernate.cfg.xml”, 在src目录下,新建一个hibernate.cfg.xml文件,与User.hbm.xml文件在同一目录下,内容如下:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.1.dtd"> <hibernate-configuration> <session-factory > <property name="show_sql">true</property><!--显示SQL语言--> <property name="connection.driver_class"><!--指定连接MySQL的驱动--> com.mysql.jdbc.Driver </property> <property name="connection.url"> jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=GBK
<!--连接数据库的URL,库名是schoolProject,”useUnicode=true&amp;characterEncoding=GBK”
意思是采用中文编码-->
</property> <property name="connection.username"> <!--连接的登录名--> root </property> <property name="connection.password"><!--登录密码--> root </property> <property name="dialect"> <!--指定连接的语言--> org.hibernate.dialect.MySQLDialect </property> <mapping resource="User.hbm.xml" /><!--映射User这个资源--> </session-factory> </hibernate-configuration>

    如果hibernate.cfg.xml文件和User.hbm.xml文件不在同一目录下,可以通过修改hibernate.cfg.xml文件中的<mapping resource="User.hbm.xml" />来映射User这个资源.如果User.hbm.xml这个文件在useradmin目录下, User.hbm.xml与hibernate.cfg.xml在同级目录下,<mapping resource="User.hbm.xml" />应改为<mapping resource="useradmin/User.hbm.xml" /> 

    另外注意hibernate.cfg.xml文件和User.hbm.xml文件中的”http://hibernate.sourceforge.net/hibernate-mapping-3.1.dtd”,其中3.1要与hibernate的版本一致,我们使用的是hibernate3.1.


0
相关文章