写hibernate程序必需的:
hibernate.cfg.xml文件
- <!DOCTYPEhibernate-configurationPUBLIC
- "-//Hibernate/HibernateConfigurationDTD3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factoryname="foo">
- <propertyname="hibernate.connection.url">
- jdbc:mysql://localhost/hibernate_fir
- </property>
- <propertyname="hibernate.connection.driver_class">
- com.mysql.jdbc.Driver
- </property>
- <propertyname="hibernate.connection.username">root</property>
- <propertyname="hibernate.connection.password">
- chx/1988
- </property>
- <propertyname="hibernate.dialect">
- org.hibernate.dialect.MySQLDialect
- </property>
- <propertyname="hibernate.show_sql">true</property>
- <mappingresource="cn/xteam/obj/User.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
这个文件主要设置和数据库链接相关的东西,这里以MySQL为例。
<mappingresource="cn/xteam/obj/User.hbm.xml"/>这一行是映射实体类的
下面是导出数据库的一个类。
- packagecn.xteam.obj;
- importorg.hibernate.cfg.Configuration;
- importorg.hibernate.tool.hbm2ddl.SchemaExport;
- publicclassExportDB{
- /**
- *@paramargs
- */
- publicstaticvoidmain(String[]args){
- Configurationcfg=newConfiguration().configure();
- SchemaExportexport=newSchemaExport(cfg);
- export.create(true,true);
- }
- }
要让它创建出表的话,还要有个实体类和一个与实体类相关的配置文件:
配置文件如下:
User.hbm.xml
- <?xmlversion="1.0"?>
- <!DOCTYPEhibernate-mappingPUBLIC
- "-//Hibernate/HibernateMappingDTD3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <classname="cn.xteam.obj.User">
- <idname="id">
- <generatorclass="uuid"/>
- </id>
- <propertyname="name"/>
- <propertyname="password"/>
- </class>
- </hibernate-mapping>
OK了!再建个实体类,里面包含配置文件中相关属性即可:
比如这里可以用下面这个类做实体类:
- packagecn.xteam.obj;
- publicclassUser{
- privateStringid;
- privateStringname;
- privateStringpassword;
- publicStringgetId(){
- returnid;
- }
- publicvoidsetId(Stringid){
- this.id=id;
- }
- publicStringgetName(){
- returnname;
- }
- publicvoidsetName(Stringname){
- this.name=name;
- }
- publicStringgetPassword(){
- returnpassword;
- }
- publicvoidsetPassword(Stringpassword){
- this.password=password;
- }
- }
用下面这个类测试:
- packagecn.xteam.obj;
- importorg.hibernate.Session;
- importorg.hibernate.SessionFactory;
- importorg.hibernate.cfg.Configuration;
- publicclassClient{
- /**
- *@paramargs
- */
- publicstaticvoidmain(String[]args){
- Configurationcfg=newConfiguration().configure();
- SessionFactorysf=cfg.buildSessionFactory();
- Sessionsession=null;
- try{
- session=sf.openSession();
- session.beginTransaction();
- Useruser=newUser();
- user.setName("neil");
- user.setPassword("123456");
- session.save(user);
- session.getTransaction().commit();
- }catch(Exceptione){
- session.getTransaction().rollback();
- }finally{
- if(session!=null){
- if(session.isOpen()){
- session.close();
- }
- }
- }
- }
- }
本文介绍如何使用Hibernate框架进行数据库映射,包括配置文件hibernate.cfg.xml的详细设置,以及通过User.hbm.xml实现实体类映射的过程,并提供了一个简单的示例程序。

被折叠的 条评论
为什么被折叠?



