第一章 你好Hibernate4

目录

 

总结:

名称:

相关链接:

第一节:Hibernate 简介

第二节: Hibernate                 通过操作关系对象 实现 关系型数据库

(1)下载hibernate:

(2)新建一个项目包:     (文件名可以随心取)

(3)添加hibernate的驱动包:

(4)build path:    (使其添加到项目里面去。)

(5)连接数据库必须还要有它的驱动包:

(6)介绍hibernate配置文件:

(7)配置hibernate配置文件:

(8)要用hibernate,就得建立对象(对象关系映射)

(9)已建立对象的hibernate配置文件:

(9)测试Hibernate!

(10)运行程序:StudentTest.java


总结:

名称:

项目的hibernat配置文件

对象的hibernat配置文件

 

相关链接:

(1)Eclipse IDE 常见快捷键

https://blog.csdn.net/HDZ1821/article/details/104377004

(2)在哪下载Mysql数据库的JDBC驱动jar包

https://blog.csdn.net/HDZ1821/article/details/104373946

(3)hibernate第一章配置文件:

https://download.csdn.net/download/HDZ1821/12168281

(目前因为我在CSDN进行文件提交,以供下载,暂时还在审核,审核通过了我再附上链接

嗯啊!审核已经通过啦!)

其包含有:

 

第一节:Hibernate 简介

官网:http://hibernate.org/

Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库Hibernate 可以应用在任何使用 JDBC 的场合, 既可以在Java 的客户端程序使用,也可以在 Servlet/JSP Web 应用中使用,最具革命意义的是,Hibernate可以在应用 EJB J2EE 架构中取代 CMP,完成数据持久化的重任。

ORM 框架,对象关系映射(Object/Relation Mapping

第二节: Hibernate                 通过操作关系对象 实现 关系型数据库

 

(1)下载hibernate:

 http://hibernate.org/

打开hibernate官网,下载出现的第一个,Hibernate ORM.(官网现在更新到了6.0版本)

 

(2)新建一个项目包:     (文件名可以随心取)

【File】-【New】-【Java project】

Project name :  Hibernate01

 

(3)添加hibernate的驱动包:

在Hibernate文件夹下

   右键【Hibernate01】-【New】-【Folder】

   Folder name : hibernate+版本号  -【Finish】

   解压并且打开刚才下载好的Hibernate ORM,进入其 hibernate-release-5.4.11.Final\lib\required文件夹下,将其文件夹下所有文件选中,复制。

   (lib\required 这个文件路径下存储着hibernate的核心包)

   将复制的所有文件粘贴进 刚才新建的 【hibernate+版本号】 文件夹下。

 

(4)build path:    (使其添加到项目里面去。)

在复制粘贴完成之后,左键查看 【hibernate+版本号】 文件夹,会发现已经将多有核心包粘贴进去了。

全选粘贴进去的包,右键。

【Build Path】-【Add to Build Path】

 

(5)连接数据库必须还要有它的驱动包:

右键【Hibernate01】文件夹 - 【New】 - 【Folder】

Folder name : mysql

然后需要将Mysql数据库的JDBC驱动jar包放在这个文件夹下。

mysql数据库的jdbc驱动jar包在哪里下载 详情请看我这篇博客:

https://blog.csdn.net/HDZ1821/article/details/104373946

然后将这个包复制粘贴进了我们刚才所创建的文件夹之后,

右键 mysql-connector-java-8.0.19.jar ,【Build Path】 - 【Add Build Path】

使其添加到项目中去。

 

(6)介绍hibernate配置文件

(以后我决定叫这个配置文件叫 = = —— 项目的 hibernate 配置文件。原因是之后也有hibernate的配置文件,我怕弄混淆。)  

hibernate.cfg.xml

作用:配置整个项目。

因为:如果要链接数据库的话,就必须要有驱动啊,链接地址,用户名密码

 

如何找到hibernate配置文件,就需要将路径定位到刚才下载好的hibernate包下,然后通过windows的搜索框,进行搜索:

搜索内容为:  .cfg.xml

进而我们会发现,搜索内容会跳出特别多一模一样名字的该文件,任意选中其中一个进行打开,会发现其中内容如下:

(注:图片中该文件被我加了编号,所以名字不同,因为我选了几个放在了同一个文件夹中,需要不同命名。)

可以看到其中的内容如上,当然了,不同文件有不同的内容。

随手再打开一个hibernate自带的该文件,文件内容为:

 

(7)配置hibernate配置文件:

(这就是我之前说的那个混淆点。所以我决定以后把类似的文件都叫做: 对象的hibernate配置文件  因为它是根据类对象的配置文件,)

输入代码:使其配置成这样:

 

创建数据库:

 

 

 

将配置完毕的该文件,复制粘贴进【Hibernate01/src】下。

到目前为止,该项目图如下:

 

【注】:

    到了后面,我开始运行第一个项目的时候,我发现有点不对劲。感觉是mysql和hibernate用的版本太高了,导致出了一些问题。

    我暂时还不知道是哪里出了问题,但是我把版本都换成了hibernate 4,mysql 的connector jar包版本也换了,换成了3.1.12   ,问题暂时被我解决了,虽然不太清楚原因,推测是语法格式变动,各种东西的使用用法变动。

    相对应的hibernate配置文件和mysql的jar包我都会给个链接全部上传。

    经过更改之后的文件目录为:

那个突然有感叹号emmm。是我更改名字时候,给我新建了一个hibernate4出来但是hibernate5并没有因此而删除掉,我强行删除了hibernate5文件夹之后,给hibernate4里面的文件都添加了注入,使其添加到了项目中去。

感觉上应该是没问题的。

因为之后执行也成功了。

 

因为我之后使用的是hibernate4,所以其文件的规范格式为,当然了,可以根据需要进行改动。:

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

<!DOCTYPE hibernate-configuration PUBLIC

        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

 

<hibernate-mapping package="">

</hibernate-mapping>

 

 

 

配置文件源代码:

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

<!DOCTYPE hibernate-configuration PUBLIC

        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

 

<hibernate-configuration>

    <session-factory>

        <!--数据库连接设置 -->

        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>

        <property name="connection.username">root</property>

        <property name="connection.password">123456</property>

 

        <!-- 方言 -->

        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

    

        <!-- 控制台显示SQL -->

        <property name="show_sql">true</property>

 

        <!-- 自动更新表结构 -->

        <property name="hbm2ddl.auto">update</property>

    </session-factory>

</hibernate-configuration>

 

(8)要用hibernate,就得建立对象(对象关系映射)

【Hibernate01/src】-【New】-【Class】

Package:model

Name:Student

其中用到了快速get/set方法: 关于eclipse中常见快捷键,请看一下我的这篇文章:

https://blog.csdn.net/HDZ1821/article/details/104377004

 

 

(9)已建立对象的hibernate配置文件:

上面我建立了一个Student类,类里面有student对象,现在我们需要建立对应student的hibernate配置文件。

 

hibernate配置文件的后缀,设置为: .hbm.xml     

其实际上就是一个xml文件,前面再加.hbm修饰,目的是容易看出来它是hibernate配置文件。

【New】-【other】- 【XML】 - 【XML File】- 【Next】

Flie name : Student.hbm.xml

该文件:

源代码:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 

<hibernate-mapping package="model">

 

    <class name="Student" table="t_student">

       <id name="id" column="stuId">

           <generator class="native"></generator>

       </id>

      

       <property name="name"></property>

    </class>

 

</hibernate-mapping>

这里弄好了之后,

还应该进入之前的hibernate配置整个项目的配置文件中进行添加路径:

有这个配置文件之后,如果一旦发现数据库里没有那个叫t_student的表

然后又发现表的结构是,自动添加与更新表时,

mysql数据库就会创建出在Eclipse IDE 下建立的这张表了。

然后我们就需要写测试了。

 

(9)测试Hibernate!

右键【src】-【New】-【Class】

Package : service

Name : StudentTest

 

其文件内容如下:

 其中快捷键用到的是:多行快捷注释。(之后我会把我文章里面所有引用的文章都放到最开始去说明- -真累死我了。。。)

 

源代码:

 

package service;

 

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import org.hibernate.cfg.Configuration;

import org.hibernate.service.ServiceRegistry;

 

import model.Student;

 

public class StudentTest {

 

   public static void main(String[] args) {

     

      Configuration configuration=new Configuration().configure(); // 实例化配置文件

      ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); // 实例化服务登记

       SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry); // 获取Session工厂

       Session session=sessionFactory.openSession(); // 生成一个session

       session.beginTransaction(); // 开启事务

      

//     Student s=new Student();

//     s.setName("张三");

//     session.save(s);

      

       session.getTransaction().commit(); // 提交事务

       session.close(); // 关闭session

       sessionFactory.close(); // 关闭session工厂

   }

}

 

(10)运行程序:StudentTest.java

从上看到下浏览console,其并未报错:(但是之前hibernate是高版本时,mysql也是高版本时,它报错了- -所以我才换成了低版本的。)

 

然后现在打开数据库软件:sqlyog

就会发现它自动生成了个表了!:

其根据native属性实现了一种主键自增机制。

 

并且在我没有注解掉中间那几行的时候- -我运行了多次这个程序,导致了- -插入了很多次的张三:

再加上之前我们:

 

所以说会显示这个:

 

这样子就实现了通过操作关系对象实现了关系型数据库的操作

 

发布了39 篇原创文章 · 获赞 16 · 访问量 3143

猜你喜欢

转载自blog.csdn.net/HDZ1821/article/details/104378996
今日推荐