hibernate相关知识点
来源:互联网 发布:淘宝互刷如何安全 编辑:程序博客网 时间:2024/05/18 19:19
一些名词、概念
1.pojo(plain old java object) 也称VO(value object,值对象)包含一些属性和相应的getter、setter方法,不允许存在业务方法。
2.映射文件(*.hbm.xml)
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated 2017-12-13 12:20:33 by Hibernate Tools 3.5.0.Final --> <hibernate-mapping><!--根元素--> <class name="book.Book_message" table="BOOK_MESSAGE"> <!--class name:映射对应的表名 table:数据库表名 catalog:数据库名--> <id name="BID" type="java.lang.String"> <column name="BID" /> <generator class="assigned" /> </id> <!--id name:映射的主键名 type:类型 column name:数据库里主键名 generator:指定主键的生成方式 assigned表示应用程序对主键赋值--> <property name="BNAME" type="java.lang.String"> <column name="BNAME" /> </property> <!--property name:映射的属性名 type:类型 column name:数据库里属性名--> </class> </hibernate-mapping>
3.配置文件(*.cfg.xml) hibernate核心配置文件
<?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 name="HibernateSessionFactory"> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/book?useUnicode=true& characterEncoding=UTF-8</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <mapping resource="Book_message.hbm.xml"/> </session-factory></hibernate-configuration>
4.hibernate核心接口
Configuration:负责读取(hibernate.cfg.xml)完成相应初始化(创建一个实例):Configuration config = new Configuration().configure();SessionFactory:创建session实例SessionFactory sessionFactory = config.bulidSessionFactory();Session:hibernate持久化操作的基础,提供众多持久化方法,透明完成持久化对象的增删查改。Session session = sessionFactory.openSession();Transaction:hibernate中进行事务操作的接口Transaction transaction = session.beginTransaction();Query:hibernate的查询接口,用于执行hql(hibernate查询语句)Query query = session.createQuery("from 表名 where 查询条件");
5.HQL
语句:1.查询:[select <属性名>] from <类名> [where <查询条件> order by <属性> [desc|asc(默认)]]2.更新:update <类名> set<属性名>=<属性值> [where <查询条件>] delete <类名> [where <查询条件>]执行:1.查询:List list = query.list();2.更新:int n = query.executeUpdate();Query参数:Query query = session.createQuery("select * from xxx where id=?");query.setString(0,"A01"); setXxx(index,value);通用setParameterQuery query = session.createQuery("select * from xxx where id=:id");query.setString("id","A01"); setXxx(name,value);通用setParameter
6.实体对象
transient(瞬时态) 实体对象只在内存中存在,尚未被Session实例关联presisent(持久态) 被session实例关联,对应数据库中的一条记录,变更被保存到数据库中。持久化对象被hibernate管理。例:这里有个Book pojo类,有id,name两个属性,实现了getter、setter方法。Book book1 = new Book();book.setId("1"); book.setName("hibernate");//book1处于transientTransaction transaction = session.beginTranscation();session.save();//book1转换为persistenttransaction.submit();//提交事务,处于持久态的book被持久化到数据库中detached(脱管态) 持久化对象对应的Session实例关闭。Session.close();通常将瞬时态与脱管态的对象统称为VO,将持久化对象称为PO(persistent object)。
7.hibernate批量处理
7.1通过hibernate缓存7.1.1修改hibernate配置文件,统称是hibernate.cfg.xml
<hibernate-configuration> <session-factory name="HibernateSessionFactory"> <property name="hibernate.jdbc.batch_size">5</property> <!--大小--> <property name="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</property> <!--使hibernate的HQL直接支持update、delete批量更新语法--> <property name="hibernate.cache.use_second_level">false</property> <!--关闭二级缓存--> </session-factory></hibernate-configuration>
7.2绕过hibernate直接调用jdbc api
8.hibernate事务管理
基于JDBC或JTA的事务管理
阅读全文
0 0
- Hibernate相关小知识点
- Hibernate相关知识点总结
- hibernate相关知识点
- Hibernate学习笔记之相关知识点整理
- Hibernate框架的相关知识点及面试题
- hibernate框架的核心对象和相关知识点
- hibernate知识点
- Hibernate知识点
- hibernate 知识点
- hibernate知识点
- Hibernate知识点
- Hibernate知识点
- hibernate知识点
- Hibernate知识点
- Hibernate知识点
- hibernate相关
- hibernate相关
- hibernate相关
- docker学习2|在容器中部署nginx并保存、运行容器
- shell基本语法
- python:安装git
- 数论——中国剩余定理
- PTA 6-2 单链表元素定位(12 分)
- hibernate相关知识点
- JDBC 批添加&修改&查找&删除
- 测试过程中的要点和策略
- Sping使用 AOP时 无法依赖注入问题
- Pyplot文本显示方法
- SVN创建分支与合并
- YARN 安装简介(未博客)
- redis集群
- eclipse plugin 导出插件包