hibernate框架(二)核心配置API
一:核心配置分为三大部分 必须的配置 、可选的配置和引入映射文件。
1.必须的配置 连接数据库的参数:驱动类 url路径 用户名 密码 方言
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">000000</property><!-- 他的方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
2.可选的配置 显示sql 整理sql语句的格式
<!-- 可选的配置 --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property>
3.引入映射文件
<mapping resource="com/itheima/domain/Customer.hbm.xml"/>
二 映射的配置
首先介绍里面的标签的属性
class标签的配置 作用:标签用来建立类与表的映射关系
属性
name:类的全路径
talbe数据库的表名
id标签的配置 作用:标签用来建立类中的属性与表中的主键的对应关系
name:类的属性名,只要是name就去类中去找
column类中的字段名
property标签的设置 作用:建立类中的普通属性与表的联系
name:类中 的属性名
column类中的字段名
length长度 type 类型 not-null设置非空 unique设置唯一
<hibernate-mapping><!-- 建立类与表的映射关系 --><!--当时这里后面少了个引号,直接导致后面的id变成蓝色 --><class name="com.itheima.domain.Customer" table="cst_customer"><id name="cust_id" column="cust_id"><!-- <generator class="native"/> --> <generator class="native"/></id><!-- 与普通字段建立对应关系 --><property name="cust_name" column="cust_name"/><property name="cust_source" column="cust_source"/><property name="cust_industry" column="cust_industry"/><property name="cust_level" column="cust_level"/><property name="cust_phone" column="cust_phone"/><property name="cust_mobile" column="cust_mobile"/></class> </hibernate-mapping>
三 核心的API
Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通过这些接口,可以对持久化对象进行存取、事务控制。
1 SessionFactory
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
hibernate的二级缓存现在在企业中已经不用了,用redis来替换他了。 sessionFactory一个程序只须创建一次就行,那么我们就抽取一个工具类,这样效率会提升。
抽取的工具类
public class HibernateUtils {public static final Configuration configuration;public static final SessionFactory sessionFactory;//写一个静态代码快static{configuration=new Configuration().configure();sessionFactory=configuration.buildSessionFactory();}public static Session openSession(){return sessionFactory.openSession();} }
2 Configuration
作用:加载核心配置文件
3 Session :类似JDBC的connection对象是一个连接对象,是数据库交互的桥梁
get方法和load方法的区别 (面试经常会问)
get 采用立即加载 查询到的是对象本身 找不到对象的时候会返回空
load就不一样了 采用的是延迟加载(Lazy懒加载) 查询后返回的是代理对象 查询不到一个对象的时候会抛异常
在开发中用的比较多的还是get
//上面的是get方法 Customer customer = session.get(Customer.class, 11l);//这里是long类型 System.out.println(customer); //下面的是load方法Customer customer = session.load(Customer.class, 4l);System.out.println(customer);
更新操作
//第二种方式是先查询,再更新,推荐这种方式Customer customer = session.get(Customer.class,6l);customer.setCust_name("王宏");session.update(customer);
删除操作
@Testpublic void demo4(){Session session = HibernateUtils.openSession();Transaction beginTransaction = session.beginTransaction();//先查询再删除,级联删除Customer customer = session.get(Customer.class,4l);session.delete(customer);beginTransaction.commit();session.close();}
查询所有
@Test//查询所有public void demo5(){Session session = HibernateUtils.openSession();Transaction beginTransaction = session.beginTransaction();Query query = session.createQuery("from Customer"); //面向对象List list = query.list();for (Object object : list) {System.out.println(object);}beginTransaction.commit();session.close();}
转载于:https://www.cnblogs.com/bao6/p/10335887.html
hibernate框架(二)核心配置API相关推荐
- Hibernate框架之入门配置
一.Hibernate导入相关的包 参考:http://blog.csdn.net/tunni/article/details/54982160 这些包包括相应数据库驱动.hibernate.zip下 ...
- 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法
1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...
- Hibernate 框架(二)(下载及环境搭建)
一.Hibernate下载 1.通过下面网站进行下载:https://zh.osdn.net/,进入网站如下图所示. 2.单击页面顶部的导航栏中的"下载",即可进入 3.在搜索框中 ...
- 深入浅出学习Hibernate框架(二):JDBC基础操作
上篇博客<深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架>简单介绍了一下Hibernate框架,并且举了一个实例来了解Hibernate.这篇博客将介绍JD ...
- java hibernate 配置_JAVA语言之关于hibernate的核心配置
本文主要向大家介绍了JAVA语言之关于hibernate的核心配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.hibernate中的核心配置文件:hibernate.rfg. ...
- 框架之 hibernate之二
1. Hibernate持久化对象的状态 2. Hibernate的一级缓存 3. Hibernate操作持久化对象的方法 4. Hibernate的基本查询 Hibernate的持久化类 什么是持久 ...
- 在hibernate框架中配置显示sql语句
使用Hibernate的框架开发时,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true< ...
- Hibernate→ORM、简介、第一个Hibernate实现、核心XML配置、Hibernate执行流程、操作数据库对象session、事务、映射XML配置、单例CRUD、get与load
OMR Hibernate 官网 http://hibernate.org/ 第一个Hibernate实现 配置文件 持久化类 关系映射文件 测试类 代码 hibernate.cfg.xml常用配置 ...
- 安卓巴士专家讲堂二十一期:揭秘Android框架层核心模块
论坛地址: http://www.apkbus.com/android-121872-1-1.html 试读地址:http://www.apkbus.com/android-121004-1-1.ht ...
最新文章
- 一封建议信,不知道这样写可以吗?
- 用python画烟花-过年了,用Python放一场浪漫烟花秀!
- ASP.NET MVC 从后台获取的字符串转换成HTML标签
- 创建到另一个工作簿中已定义名称的外部引用的帮助(Excel)
- react 设计模式与最佳实践
- 【Hook】postman工具的代码生成工具让它锦上添花
- php ajax mysql 出错,MySql + PHP + Ajax的乱码问题的解决方案
- MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
- HDU1287 破译密码【密码】
- 【Django 2021年最新版教程26】模板语言 前端if判断怎么用 实例
- undefined reference to错误的解决方法
- 如何简单运行Java程序
- 使用Google Chrome Frame(谷歌浏览器内嵌框架)解决低版本IE不兼容问题
- 中国地图填色问题Python API(动态)
- 阿里云服务器搭建私人云盘
- base64和base32的区分方法
- Python安全工具编写-密码爆破
- SQL Server Reporting Services
- ISP简介(stm32)
- 考研大作文模板与实战(图表为主+部分图画新题型)