我是靠谱客的博主 舒适指甲油,最近开发中收集的这篇文章主要介绍hibernate jar包_聊聊程序员-day2.1 聊一聊Hibernate,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天我们来学习hibernate,当我们想把一个数据存在数据库里,首先要在客户端(Client)new 出一个对象(假设为Student),我们需要连接数据库,使用JDBC来对Student进行操作。

这里要注意的是,在面向对象编程中,我们使用的sql语句并不是面向对象的语言。

而采用hibernate我们就不必使用JDBC了,我们的Student对象直接和hibernate打交道(而不需要再写sql语句).

相关类关系如下图所示,先简单做一个了解:

69773b44ebae2d5b20114e7ebcd1d0dc.png

资源准备

很多公司喜欢使用Annotation开发,所以我们的学习风格依然是重Annotation轻xml配置文件。

准备阶段我们需要下载三个hibernate资源包。

ed0d906b8120176356ec4b0f717a3530.png

除此之外,我们还需要配合两个文件学习。

第一个是在:hibernate-distribution-3.6.10.Finaldocumentationmanualzh-CNhtml_singleindex.html

这个文件我们是我们学习hibernate的参考文档(简称为文件1)

第二个是:hibernate-search-5.8.0.Finaldocsreferencezh-CNhtml_singleindex.html

这个文件是我们学习hibernate-annotation的参考文档(简称为文件2)

第一个hibernate程序:HelloWorld

新建一个简单的java项目,名为: Hibernate_0100_HelloWorld

如果我们需要导入多个jar包(同一系列),我们可以:

window–>java–>build path–>user libraries也就是用户自定义的jar包集合。

以hibernate为例,点击new–>定义名称为hibernate–>add jars(添加自定义的jar包)–>依次导入:hibernate3.jar, hibernate-distributionlibrequired中的所有包,slf4j-nop-1.6.jar

接着如下图所示,我们点击项目Hibernate_0100_HelloWorld,右键bulid path–>user libraries–>UserLibrary–>hibernate 选中确定即可

69773b44ebae2d5b20114e7ebcd1d0dc.png

ed0d906b8120176356ec4b0f717a3530.png

我们需要跟数据库建立联系,所以还需要再导入一个jar包:mysql-connector-java-3.1.13-bin.jar以便在mysql中建立对应的表。

1)打开mysql,创建数据库hibernate.

1e098a23d0c6176c852c44a9f533d5da.png

2)建立对应的表

865953ed1c0d79283073290d25ebeb1f.png

4710fe426c4347e29230c0d15e1dcc2c.png

3)在Hibernate_0100_HelloWorld中创建Student.java

例1:

package 

4)创建测试类StudenTest

例2:

package 

5)在文件1中找到如下代码,创建配置文件:hibernate.cfg.xml(文件名约定俗成,尽量不要更改),并粘贴。

例3:

<?xml version='1.0' encoding='utf-8'?>

6)修改hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
  1. 设置Student类/属性和数据库表/字段之间的对应关系:建立Student.hbm.xml(Student.java放在同一个包下)

查阅文件1:关于映射文件的描述,我们可以对此创建出如下配置文件。

例4:

<?xml version="1.0"?>
  1. 修改hibernate.cfg.xml的mapping标签,链接student.hbm.xml的位置。

例5:

<mapping resource="com/hibernate/model/Student.hbm.xml"/>
  1. 修改测试类studentTest.java
public 

10)运行测试类结果如下:

Hibernate: insert into Student (name, age, id) values (?, ?, ?)

11)在数据库中查询后结果如下:

1e098a23d0c6176c852c44a9f533d5da.png

说明s1对象已经插入数据库中。

第二个hibernate程序:建立Annotation(注解)版本的HelloWorld

在hibernate3之后支持annotation.

1)创建一个Teacher.java类

例6:

public 

2)在数据库中建立好teacher表

197cf944980bfc4bb7cb40ae5905c6d6.png

3) 导入annotation相关包

009ce2139efd7ee444d1708e38f93477.png
  1. 在Teacher.java上添加注解@Entity

例7:Teacher.java

import 

由包路径可知,此注解并不属于hibernate,而是一个标准,hibernate实现了它,并且hibernate实现的比原来的更好。“三流公司买产品,二流公司卖服务,一流公司卖标准。”所以此标准定义的和hibernate非常符合。

5)在Teacher.java上添加注解@Id,代表数据库中的主键字段。

例8:Teacher.java

@Id

6)添加对应在hibernate.cfg.xml的mapping标签(可以跟之前使用配置文件配置作对比)

例9:hibernate.cfg.xml

<!-- 使用配置文件 -->
<mapping resource="com/hibernate/model/Student.hbm.xml"/>
<!-- 使用注解 -->
<mapping class="com.hibernate.model.Teacher"/>

7)测试类TeacherTest.java

例10:

public 

运行测试类,结果如下:

Hibernate: insert into Teacher (name, title, id) values (?, ?, ?)

例11:在数据库中查询结果如下图所示

749b198332f7eab4fe98dc94250eaceb.png

常见的一个小问题:

@不给提示:content assist --> activation -->加上@

What is and Why O/R Mapping

  1. 相比较JDBC操作数据库,流程大大简化。
  2. Sql语句本身并不是面向对象的。
  3. 可以在对象和关系表之间建立关联来简化编程。
  4. O/R Mapping 可以跨数据库平台
  5. O/R Mapping 可以简化编程

模拟实现hibernate

创建出一个新的Java project:Hibernate_0200_OR_Mapping_Simulation,导入mysql-connector-java相关包。

第一步:创建Student.java

例12:Student.java

public 

例13:StudentTest.java

public 

例14:Session.java

public 

运行测试类,结果如下:

insert 

SQL语句成功打印出来,接下来我们需要连接数据库。

第二步:连接数据库

  1. 在数据库中新建table _Student,如下图所示:

e24fc8fdcac4663586111e54a63f2d01.png
  1. 修改Session.java如下

例15:

public 

例16:StudentTest.java

public 

运行测试类,控制台无结果。

在mysql中查询结果如下,说明我们插入成功。以后我们再插入Student对象就不必写sql语句了!

54cb2b1136962b70a5b2308cef62491d.png

总结

本章我们讲了在hibernate中使用xml和annotation配置的流程,模拟了hibernate原理,
希望大家通过这些案例理解了什么是O/R Mapping.


最后

以上就是舒适指甲油为你收集整理的hibernate jar包_聊聊程序员-day2.1 聊一聊Hibernate的全部内容,希望文章能够帮你解决hibernate jar包_聊聊程序员-day2.1 聊一聊Hibernate所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部