hibernate基本使用

hibernate基本使用

3be6c467cb0116ad7b1d193234979d99e32.png

1.hibernate简述

2.hibernate目录

3.hibernate基本使用

4.过程回顾

31431dc07c93af26c2e0ca0f07b7248eaaa.png
01

hibernate简述


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


02 目录结构


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

f87131eb1cbd86155a0901590553240929d.png


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


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


3.project是测试工程



03 基本使用


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


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


hiberante.cfg.xml

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

<?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>标签是其他普通字段的映射配置


给表插入数据

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语句,数据库成功插入一条数据





本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值