前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >hibernate基本使用

hibernate基本使用

作者头像
木瓜煲鸡脚
修改2019-09-17 16:44:05
修改2019-09-17 16:44:05
83900
代码可运行
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记
运行总次数:0
代码可运行

hibernate基本使用

1.hibernate简述

2.hibernate目录

3.hibernate基本使用

4.过程回顾

01

hibernate简述

hibernate框架应用在web三层架构的DAO层,是对JDBC的一种轻量级的封装,对javaBeans和数据库表进行映射,就不用再自己编写sql语句去获取对象属性对应表字段手动执行到数据库里,hibernate就帮你做了后面的工作,只需要对对象进行操作

02

目录结构

到官网下载解压后就有三个文件夹

1.documentation里面是一些使用文档基本上没啥用

2.lib就包含着使用hiternate要用到的java包,其中required是必须的包

3.project是测试工程

03

基本使用

首先导入lib>required中的java包,除此之外要连接数据库当然得导入驱动包数据库我用的是mysql,我这里是mysql-connector-java-8.0.17.jar

使用hibernate不用去自己手动连接数据库创建驱动对象,得到连接对象什么的,这些语句都封装好了,所以你只需要去传入驱动的包路径、url、用户名、密码这些参数即可。这些通过核心配置文件hibernate.cfg.xml来传入

hiberante.cfg.xml

代码语言:javascript
代码运行次数:0
复制
<!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="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

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

      <property name="hibernate.connection.url">jdbc:mysql:///hibernate?serverTimezone=Asia/Shanghai</property>

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

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

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

      <property name="hibernate.format_sql">true</property>

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

      <mapping resource="com/hao/domain/Student.hbm.xml"/>
   </session-factory>
</hibernate-configuration>

dialect:使用什么版本的sql语句,我这里就设置为mysql的

connection.driver_class:驱动的全限定名称

connection.url:mysql6之后时区参数一定要写

connection.username:数据库用户名

connection.password:对应用户名的访问密码

show_sql:是否在控制台打印它生成的sql语句

format_sql:格式化控制台显示的sql语句

最后还有一个mapping标签就是关于映射信息的配置文件的地址(全限定名),加载了核心配置文件之后,连接到数据库。当你对domain类进行操作时,他就去到核心配置文件去找映射配置文件地址。通过映射配置文件就能知道这个domain对应哪个表,当你去操作这个domian时他就自动去操作这个表

Student.hbm.xml

代码语言:javascript
代码运行次数:0
复制
<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.hao.domain.Student" table="student">

        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name" column="name"/>
        <property name="age"  column="age"/>
     </class>
</hibernate-mapping

domain类Student对应表student

domain类属性id对应列字段id

domain类属性name对应列字段name

domain类属性age对应列字段age

<id>标签是写主键的映射配置

<property>标签是其他普通字段的映射配置

给表插入数据

代码语言:javascript
代码运行次数:0
复制
public class HibernateTest {    @Test
    public void hibernateTest(){
        Configuration configuration = new Configuration().configure();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        Student student = new Student();
        student.setName("张三");
        student.setAge(19);
        session.save(student);
        session.close();
    }

}
  1. 加载核心配置文件得到configuration对象
  2. 通过配置对象再得到sessionfactory对象相当于连接池
  3. 再得到session对象相对于从连接池得到连接对象
  4. session通过save方法就可以插入一条数据了,而不用通过预编译语句对象再去写sql语句再传入参数
  5. 最后关闭资源session.close( )、sessionFactory.close()

04

执行流程回顾

  1. 加载核心配置文件
  2. 保存对象时通过核心配置文件的信息连接到数据库并且找到映射配置文件
  3. 生成sql语句,通过内省遍历domain类的属性,按照映射配置文件对应的映射关系传入参数到sql语句
  4. 执行sql语句,数据库成功插入一条数据
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档