hibernate配置相关

本文介绍如何使用Hibernate框架进行数据库映射,包括配置文件hibernate.cfg.xml的详细设置,以及通过User.hbm.xml实现实体类映射的过程,并提供了一个简单的示例程序。

写hibernate程序必需的:

 

hibernate.cfg.xml文件

  1. <!DOCTYPEhibernate-configurationPUBLIC
  2. "-//Hibernate/HibernateConfigurationDTD3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factoryname="foo">
  6. <propertyname="hibernate.connection.url">
  7. jdbc:mysql://localhost/hibernate_fir
  8. </property>
  9. <propertyname="hibernate.connection.driver_class">
  10. com.mysql.jdbc.Driver
  11. </property>
  12. <propertyname="hibernate.connection.username">root</property>
  13. <propertyname="hibernate.connection.password">
  14. chx/1988
  15. </property>
  16. <propertyname="hibernate.dialect">
  17. org.hibernate.dialect.MySQLDialect
  18. </property>
  19. <propertyname="hibernate.show_sql">true</property>
  20. <mappingresource="cn/xteam/obj/User.hbm.xml"/>
  21. </session-factory>
  22. </hibernate-configuration>

这个文件主要设置和数据库链接相关的东西,这里以MySQL为例。

<mappingresource="cn/xteam/obj/User.hbm.xml"/>这一行是映射实体类的

下面是导出数据库的一个类。

  1. packagecn.xteam.obj;
  2. importorg.hibernate.cfg.Configuration;
  3. importorg.hibernate.tool.hbm2ddl.SchemaExport;
  4. publicclassExportDB{
  5. /**
  6. *@paramargs
  7. */
  8. publicstaticvoidmain(String[]args){
  9. Configurationcfg=newConfiguration().configure();
  10. SchemaExportexport=newSchemaExport(cfg);
  11. export.create(true,true);
  12. }
  13. }

要让它创建出表的话,还要有个实体类和一个与实体类相关的配置文件:

配置文件如下:

User.hbm.xml

  1. <?xmlversion="1.0"?>
  2. <!DOCTYPEhibernate-mappingPUBLIC
  3. "-//Hibernate/HibernateMappingDTD3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6. <classname="cn.xteam.obj.User">
  7. <idname="id">
  8. <generatorclass="uuid"/>
  9. </id>
  10. <propertyname="name"/>
  11. <propertyname="password"/>
  12. </class>
  13. </hibernate-mapping>

OK了!再建个实体类,里面包含配置文件中相关属性即可:

比如这里可以用下面这个类做实体类:

  1. packagecn.xteam.obj;
  2. publicclassUser{
  3. privateStringid;
  4. privateStringname;
  5. privateStringpassword;
  6. publicStringgetId(){
  7. returnid;
  8. }
  9. publicvoidsetId(Stringid){
  10. this.id=id;
  11. }
  12. publicStringgetName(){
  13. returnname;
  14. }
  15. publicvoidsetName(Stringname){
  16. this.name=name;
  17. }
  18. publicStringgetPassword(){
  19. returnpassword;
  20. }
  21. publicvoidsetPassword(Stringpassword){
  22. this.password=password;
  23. }
  24. }

 

 

用下面这个类测试:

  1. packagecn.xteam.obj;
  2. importorg.hibernate.Session;
  3. importorg.hibernate.SessionFactory;
  4. importorg.hibernate.cfg.Configuration;
  5. publicclassClient{
  6. /**
  7. *@paramargs
  8. */
  9. publicstaticvoidmain(String[]args){
  10. Configurationcfg=newConfiguration().configure();
  11. SessionFactorysf=cfg.buildSessionFactory();
  12. Sessionsession=null;
  13. try{
  14. session=sf.openSession();
  15. session.beginTransaction();
  16. Useruser=newUser();
  17. user.setName("neil");
  18. user.setPassword("123456");
  19. session.save(user);
  20. session.getTransaction().commit();
  21. }catch(Exceptione){
  22. session.getTransaction().rollback();
  23. }finally{
  24. if(session!=null){
  25. if(session.isOpen()){
  26. session.close();
  27. }
  28. }
  29. }
  30. }
  31. }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值