在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层。它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(Persistent Object,持久化对象)映射到数据库中的数据库,然后通过操作PO,对数据表中的数据进行增,删,改,查等操作。

  但是如果Hibernate配置完全通过手动来进行写入的时候,极易出现错误,并且略有繁琐,下面介绍的就是如何利用eclipse快捷建立数据访问层的增删改查。

  一、新建一个web项目

  二、复制包

  把Hibernate和数据访问的包导入lib文件夹中

  

  三、配置hibernate configurations

  “窗口”--“显示视图”--“其它”-“hibernate configurations”

  四、

  在"hibernate configurations"窗口中右击,选择“Add Configuration”(即在上图中空白处右击)

  这里的5.2是导入lib文件的jar包的Hibernate版本,project选择你要操作的项目,Database connection默认是没有的,这时候就需要选择New 新建一个数据连接

  这里用什么的数据库就选择什么类型的。

  接下来的configuration file继续选setup,选择新建一个,然后选择你的项目放到src源文件夹之下

  下一步

  完成后,到这一步基本实现了对数据库通道的配置文件的建立,接下来就是运行生成配置文件。

  首先,打开Hibernate的透视图

  然后是运行Hibernate Code Generation配置

  左侧列表处新建配置

按照如上所示填写时,在reveng.xml选择setup时,选择好在src之下建立文件下一步之后,出现如下对话框

  点击refresh,选择你的数据库所用的表,添加至右侧,点击完成,点击运行,这时候你的Hibernate配置数据库构建通道就基本实现完毕了。

  测试实现功能

  新建HibernateUtil类

package com.model;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;public class HibernateUtil {private static final ThreadLocal<Session> threadLock = new ThreadLocal<Session>();private static final SessionFactory factory = buildFactory();private static SessionFactory buildFactory() {Configuration cfg = new Configuration().configure();return  cfg.buildSessionFactory();}public static Session getSession(){Session session = threadLock.get();if(session ==null){session = factory.openSession();threadLock.set(session);}return session;}public static void closeSession(){Session session = threadLock.get();if(session !=null){threadLock.set(null);session.close();}}
}

  新建一个Test源文件夹,创建名与src一样的包名,新建测试TestRelation.java

package com.model;import org.hibernate.Session;
import org.junit.Test;import junit.framework.TestCase;public class TestRelation extends TestCase{@Testpublic void testone2one(){Session session = null;try{session= HibernateUtil.getSession();Info i = session.load(Info.class, "p002");System.out.println(i.getName());}catch(Exception ex){ex.getStackTrace();}finally{HibernateUtil.closeSession();}}@Testpublic void testone2many(){Session session = null;try{session= HibernateUtil.getSession();Work w = session.load(Work.class, 5);System.out.println(w.getFirm());}catch(Exception ex){ex.getStackTrace();}finally{HibernateUtil.closeSession();}}}

  这里用到了一个jar包,junit-4.12.jar。是为了用大纲的测试文件直接测试使用的。

  直接右键两个静态方法运行junit查看。

  效果如下:

转载于:https://www.cnblogs.com/claricre/p/6509931.html

快捷配置Hibernate实现对数据库的配置(构建通道)相关推荐

  1. nhibernate mysql配置_NHibernate 连接多数据库怎么配置?

    NHibernate 连接多数据库怎么配置?是不是连一个数据库,就创建一个NHibernate.cfg.xml 或 配置文件?如果要连接6个数据库,就要创建6个配置文件,太麻烦了吧!有没有简单的写法? ...

  2. mysql mac 环境变量配置_mac安装mysql数据库及配置环境变量

    安装mysql 下载mysql.我下载的是:mysql-8.0.11-macos10.13-x86_64.dmg 双击打开mysql-8.0.11-macos10.13-x86_64.dmg,然后双击 ...

  3. 配置mysql命令_Mysql 数据库常用配置命令

    1.查看mysql数据库默认编码: mysql> show variables like "character%"; +--------------------------+ ...

  4. nhibernate mysql配置_NHibernate 连接多数据库怎么配置

    展开全部 在开发一些项目时,会使用到多个数据库e5a48de588b662616964757a686964616f31333361313338.例如类A保存在数据库A,类B保存在数据库B.NHiber ...

  5. django oracle数据库配置,使用Oracle 11g数据库issu配置django

    问题是Django 2.0.2仅支持oracle 12g.请检查以下内容: 此外,您还可以检查sql失败,如下面的问题(添加到管理.py打印(查询)行) 我已经按照第一个问题中的建议将其降级到djan ...

  6. Hibernate→ORM、简介、第一个Hibernate实现、核心XML配置、Hibernate执行流程、操作数据库对象session、事务、映射XML配置、单例CRUD、get与load

    OMR Hibernate 官网 http://hibernate.org/ 第一个Hibernate实现 配置文件 持久化类 关系映射文件 测试类 代码 hibernate.cfg.xml常用配置 ...

  7. hibernate mysql 映射_Hibernate怎么不用配置mapping就使用数据库表映射实体

    用xml配置时就需要每建一个表就hibernate-cfg-xml里加入它的映射.如果不用加入此代码就实现映射就要用注解的方式,系统会根据你的注解自动映射对应的数据表,实现几乎xml文件的零配置. 例 ...

  8. 在JAVA EE中配置hibernate以及hibernate hello world

    为什么80%的码农都做不了架构师?>>>    这篇文章主要介绍hibernate的配置以及如何实现hello world.至于如何使用maven等工具获取到hibernate的ja ...

  9. hibernate mysql 自动建表_配置hibernate根据实体类自动建表功能

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码 Xml代码update upda ...

最新文章

  1. java程序重新执行一遍_我怎么在jsp里只执行其中一小段java代码,而不把整个页面都重新加载一遍?...
  2. 阅读笔记一——java高并发的性能优化
  3. 关于将一个数输出为原码、反码和补码的解惑
  4. 我眼中的JavaScript函数式编程
  5. Scrapy中的splash的安装应用
  6. C:C++ 函数返回多个参数
  7. 虚拟机使用桥接模式设置Linux静态IP
  8. muduo网络图书馆评测
  9. socket通信需要网线连接吗_从socket到TCP协议,透彻理解网络编程
  10. android数字提示错误,从服务器接收数据时出现Android错误
  11. 推荐系统组队学习——WideDeep
  12. 推荐阅读20100603
  13. 《从容一生》俞敏洪 书摘
  14. python 字母查找
  15. 【知识蒸馏】Deep Mutual Learning
  16. 2022-2028年中国民营医疗行业市场运营态势及投资战略规划报告
  17. OculusClient登录错误“发生意外错误,请稍后重试(OVR40779122)”解决方法
  18. linux 设备树 otg,linux下充电IC OTG设备供电控制
  19. NCS8803 高级缩放功能的低功耗HDMI到DisplayPort / eDP转换芯片
  20. 机器学习模型选择:调参参数选择

热门文章

  1. 计算机小知识分享,分享几小个计算机操作技巧
  2. STM32H743+Cube-Keil上移植RTX5实时系统
  3. 微信小程序 自动解决分包大小问题_微信小程序分包加载设置
  4. python怎么筛选excel数据_【In Action】工具-2-用Excel三分钟才能完成的复杂筛选,python十秒完成...
  5. the sdk seems invalid._直播平台中必不可少的美颜SDK
  6. Linux笔记-rpm与yum的基本概念
  7. Linux笔记-解决QtCreator中qDebug不打印的问题
  8. dubbo调用超时回滚_面试必问之Dubbo面试题
  9. 土是独体字结构吗_205砂浆、混凝土强度等级与定额不同时,你会调整换算吗?...
  10. 文件系统位于服务器,如何访问hadoop文件系统上的文件,该文件系统位于与本地计算机不同的服务器上?...