《Java从入门到放弃》入门篇:hibernate基本用法

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

一、hibernate.cfg.xml


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<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


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<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>。

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

  

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

时间: 2024-11-14 06:09:19

《Java从入门到放弃》入门篇:hibernate基本用法的相关文章

Vue.js2.0从入门到放弃---入门实例

最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api...废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希

转-Vue.js2.0从入门到放弃---入门实例(一)

http://blog.csdn.net/u013182762/article/details/53021374 标签: Vue.jsVue.js 2.0Vue.js入门实例Vue.js 2.0教程 2016-11-03 14:40 21431人阅读 评论(9) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 最 近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊, 由

vue.js 2.0 从入门到放弃 --- 入门案例(一)

最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api...废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希

mysql从入门到放弃-入门知识介绍

数据库在互联网网站的重要性 简单地说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构来组织和存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据.由于数据库不易扩展,所以,在一个互联网网站里,它的瓶颈必然是数据库. 数据库的种类 在当今的互联网中,最常用的数据库模型主要有两种:1)关系型数据库:2)非关系型数据库(NOSQL).

《Java从入门到放弃》入门篇:hibernate基本配置

hibernate是个什么玩意呢?简单点说,就是别人写好的一套访问数据库的东东,底层其实就是JDBC. 使用JDBC就像以前没有电饭煲,我们要自己根据经验,多少人煮多少米,放多少水,用多大的火,煮多长时间,整个过程都需要自己来把控,如果把控得不好,运气好只是把饭煮成粥,运气不好就是一锅炭了. 而使用hibernate就跟使用电饭煲一样,根据刻度放水和米,然后按煮饭还是煮粥,接下来等它"叮~"的一声后,就可以吃了,不说煮得有多好,起码煮出来的是饭,而且是熟的!!! 前者没有多年煮饭经验肯

《Java从入门到放弃》文章目录

转眼半个月过去了,不知不觉也写了10篇博客,突然发现所有的目录都没有纯列表的展示,所以特意写一个目录篇,来记录该系列下所有的文章. 当然,因为现在还没有写完,所以先按时间顺序排列,等相关内容都写完后,再按学习顺序来整理. <Java从入门到放弃>入门篇:XMLHttpRequest的基本用法 <Java从入门到放弃>入门篇:Struts2的基本访问方 <Java从入门到放弃>入门篇:Struts2的基本访问方式(二) <Java从入门到放弃>入门篇:Stru

【Java】Hibernate4实战 之 第一部分Hibernate入门

Hibernate是什么:ORMapping的原理 Hibernate是轻量级的ORMapping框架. ORMapping基本规则: 类和表映射. 实例和数据库表中的一条数据映射. 实例的属性和数据库表中的字段映射. 表名和类名可以不一样. 一个类可以映射多个表. 一个表可以映射多个对象. 类的属性字段名可以和数据库里面的字段名不一样. 类的属性字段个数可以和数据库里面的字段个数不一样. 类的属性字段顺序可以和数据库里面的字段顺序不一样. 类的属性字段类型和数据库里面的字段类型不一样,但是要能

JavaScript从入门到放弃之补充篇

上回说到,基础之篇,看久必新,新久必看. 这回我们来说说除了基础篇之外的一些花里胡哨的东西. 数组 以字面量方式创建数组 //字面量方式创建 var colors = ['red','white','black'] console.log(colors) 输出结果如下: 使用构造函数创建 // 使用构造函数创建数组 var heroes = new Array(); heroes[0] = 'Marvelous'; heroes[1] = 'Riven'; heroes[2] = 'Lee Si

Linux从入门到放弃、零基础入门Linux(第四篇):在虚拟机vmware中安装centos7.7

如果是新手,建议安装带图形化界面的centos,这里以安装centos7.7的64位为例 一.下载系统镜像 镜像文件下载链接https://wiki.centos.org/Download 阿里云官网:https://mirrors.aliyun.com 现更新为:https://opsx.alibaba.com/mirror 清华软件镜像:https://mirrors.tuna.tsinghua.edu.cn/ 都可以, 下载centos7.7的64位版本镜像文件种子,然后用下载软件下载即可

iOS 即时通讯,从入门到 “放弃”?

原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. 注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读. 言归正传,首先我们来总