昨天我们进行了hibernate的配置,并且进行了根据ID查询对应数据的操作,今天我们来看看hibernate中的几个配置文件,里面到底有什么东东。

一、hibernate.cfg.xml

<hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.url">jdbc:mysql://127.0.0.1:3306/superktv</property><property name="connection.username">root</property><property name="connection.password">root</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="myeclipse.connection.profile">mysql</property><mapping resource="com/pxy/dao/Author.hbm.xml" /></session-factory>
</hibernate-configuration>

这里面应该没有什么不好懂的吧,就注意一点,<mapping>标签的路径不要引用错了,每次引用完后,记得按住Ctrl键,再把鼠标移动到resource的值上去,如果双引号里的内容变成了超链接,那说明没问题。当然,如果你是通过DBBrowser生成的文件,那肯定不会引用错误。

二、Author.hbm.xml

<hibernate-mapping><class name="com.pxy.entity.Author" table="author" catalog="blogdb"><id name="id" type="java.lang.Integer"><column name="id" /><generator class="native" /></id><property name="username" type="java.lang.String"><column name="username" length="20" not-null="true" /></property><property name="password" type="java.lang.String"><column name="password" length="10" not-null="true" /></property><property name="email" type="java.lang.String"><column name="email" length="20" /></property><property name="address" type="java.lang.String"><column name="address" length="20" /></property><property name="phone" type="java.lang.String"><column name="phone" length="20" /></property></class>
</hibernate-mapping>

class标签的name表示对应的实体类,table表示对应的数据表,catalog表示对应的数据库。

id标签:表示主键。

generator标签:主键的生成策略。

property标签:表示实体类的属性。

column标签:表示对应表中的字段。

对于单个对象的操作,我们上次已经用过了load方法,除此之外,常用的还有以下四个:

get()方法,save()方法,update()方法,delete()方法

从名字就应该可以猜出对应的用法吧,这儿就不在一一演示了,各位看官自行解决吧·

最后简单说一下load()和get()的区别:

load()方法是延时加载,调用时只返回一个代理对象(只包含ID),并且如果没有该ID对应的数据会抛ObjectNotFoundException异常。

get()方法是实时加载,调用后就返回ID对应的记录,如果数据不存在则返回null对象。

为了测试一下效果,我们在hibernate的配置文件中加<propertyname="show_sql">true</property>和<property name="format_sql">true</property>。

注意看下面两段代码及结果的区别。

  

至于查不存在的数据,大伙就自己试试吧。今天的就打到这儿吧。下一篇我们来了解稍微高深那么一点点的知识吧。

转载于:https://blog.51cto.com/softi/1957387

《Java从入门到放弃》框架入门篇:hibernate基本用法相关推荐

  1. jmeter-5-从入门到放弃【基础篇】

    一.Jmeter简介: 1.简介 Jmeter 是一款基于Java程序开发的可视化客户端 (类似postman客户端).具有开源.高可扩展性.高移植性.多线程框架等特点. 简单来说它就是:界面友好,能 ...

  2. dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...

  3. java代码审计_Java代码审计| Spring框架思路篇

    Java的WEB框架是Java进阶课程,当要进行Spring的漏洞分析,要有一定的Java代码知识储备. Java后端标准的学习路线:JavaSE->JavaEE->Java Web框架 ...

  4. 肺炎在家自学C#--从入门到放弃然后又入门又放弃又入门

    入门到第一次中断 去年的工作太忙,工作知识涉及面又广,大量学习的是管理经验,以及半导体检测设备现场故障处 理.下了班每天学一个小时软件,几个月过后,学习了有一百个小时.就没有然后了. 正如一切自学那样 ...

  5. 《Java从入门到放弃》入门篇:hibernate查询——HQL

    不知不觉又到了hibernate的最后一篇了,只感觉时光飞逝~,岁月如梭~! 转眼之间,我们就···························,好吧,想装个X,结果装不下去了,还是直接开始吧· ...

  6. Java新手教程从入门到放弃从入门到精通(3)

    运算 关系运算 布尔类型   接着上一篇继续讲布尔类型,下面创建两个布尔类型的变量并输出看下结果: public static void main(String[] args) {boolean bo ...

  7. 【软件测试从入门到放弃】入门阶段:迈入软件测试大门

    引言 本文将讲解软件的概念.软件的生命周期.软件测试方法.软件测试常见模型.软件测试的覆盖率及软件测试规范,一步步带你进入软件测试大门. 一.软件基础 1.1 软件 1 软件的概念 软件是计算机系统中 ...

  8. 自动化测试,从入门到放弃

    介绍 有多少本书,在打着"从入门到精通"的旗号在忽悠人.因为,并没有看到我们周围有多少个"精通"的人. 虽然有点武断,我还是建议不要去购买带有"从入门 ...

  9. 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集

    title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...

  10. AI从入门到放弃:BP神经网络算法推导及代码实现笔记

    作者 | @Aloys (腾讯员工,后台工程师) 本文授权转自腾讯的知乎专栏 ▌一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤 ...

最新文章

  1. 关于机器学习和AI的区别最经典的解释
  2. 直线拟合的实现步骤和相关算子
  3. mybatis使用注解替代xml配置,动态生成Sql
  4. 【JavaSE02】Java基本语法-练习
  5. 半波对称振子方向图_移动天线的概念 | 天线方向性
  6. Spark:如何替换sc.parallelize(List(item1,item2)).collect().foreach(row={})为并行?
  7. OpenStack nova-network 支持多vlan技术实现片段代码
  8. Error:collect2:ld returned 1 exit status的其他原因
  9. RSA公钥文件(PEM)解析
  10. MyBatis日志插件:Mybatis Log Plugin——将控制台输出的mybatis日志转化成可执行的sql语句
  11. oracle进入rman报错,Oracle学习系列之Rman学习(三)
  12. 怎么把VC++的注释语句调成其他颜色,只调注释语句
  13. Spring.net(一)----Spring.NET框架简介及模块说明
  14. windows下批量更改文件名
  15. 基于ESP-IDF环境的ESP32-C3开发
  16. huaweiPush模块使用说明
  17. 基于layui 下拉多选 三级联动省市区demo
  18. tomcat5下get请求中文乱码
  19. Android App通过应用宝获取版本信息,从而跳转到不同应用商店更新APP
  20. java开发微信公众号入门指引,jsp(java)开发微信公众平台入门

热门文章

  1. linux内核编译感想,Linux内核编译小结
  2. linux python自动补全_Linux下在python命令行中自动补全代码(py2、3,centos、ubuntu)...
  3. java 1_java基本语法1
  4. r怎么保存html文件,leaflet - 为什么在已保存的html文件中缺少传单地图上的杂项,但在Rstudio浏览器中可以正常打印呢? - 堆栈内存溢出...
  5. memset 结构体内指针_SideTable结构
  6. 图像降噪算法——图像噪声模型
  7. 【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧...
  8. 【AI初识境】为了围剿SGD大家这些年想过的那十几招
  9. 全球及中国新鲜芒果制品市场投资份额与营销渠道分析报告2022版
  10. 全球及中国木材加工行业运行状况与投资产值预测报告2022版