Hibernate框架(一)
来源:互联网 发布:淘宝网男休闲皮鞋 编辑:程序博客网 时间:2024/05/17 04:44
(一:)Hibernate是一个持久层开源的,轻量级的,对象关系映射的框架,让程序员养成面向对象编程的思想,它是对JDBC的封装
(二:)关于它工作的流程如下所示:
(1)加载核心配置文件和ORM映射文件
(2)获取sessionfactory的工厂对象
(3)获取操作数据的session对象
(4)开启事务
(5)操作数据
(6)提交事务
(7)关闭资源
(三)首先我们需要利用Maven工具去创建项目,然后导入依赖(需要注意一个坐标问题)
(四)创建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> <!-- 连接数据库所需要的四大参数 --> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.url">jdbc:mysql:///day2</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 核心配置的修改,要想在工具类中使用本地线程,需要在配置文件中添加此项配置 --> <property name="hibernate.current_session_context_class">thread</property> <!-- 此处是打印SQL语句的命令,但是你想要去打印,容易丢的东西true --> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <!-- 格式化的方式打印SQL --> <mapping resource="com/qf/pojo/Car.hbm.xml"/> </session-factory></hibernate-configuration>
(五)创建实体类(包含属性及set和get方法),且创建ORM思想的配置文件(**.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"><!-- Generated 2017-8-30 8:23:25 by Hibernate Tools 5.2.1.Final --><hibernate-mapping><!-- name为实体类的路径 table为数据库表的表名 --> <class name="com.qf.pojo.Tch" table="tch" catalog="hibernate" optimistic-lock="version"> <!-- 主键 --> <id name="tid" type="java.lang.Integer"> <column name="tid" /> <!-- 关于主键的生成方式,请看下边的内容 --> <generator class="identity" /> </id> <!-- 对应的实体类的属性名和在数据库中字段的字段名 --> <property name="tchName" type="string"> <column name="tch_name" length="100" /> </property> <property name="tchSex" type="string"> <column name="tch_sex" length="100" /> </property> </class></hibernate-mapping>
(六)将核心的配置文件加载到Hibernate.cfg.xml中,利用的是mapping这一个节点
(七)可以进行一次测试(关于实体类以及实体类的配置文件可以利用反向工程区自动生成)
在数据库中没有表的情况下,可以利用节点
<property name="hibernate.hbm2ddl.auto">update</property>
关于UPDATE建议使用这个,还有其他的几种类型的参数
关于测试的代码如下
public static void main(String[] args) {//加载配置Configuration configure = new Configuration().configure("hibernate.cfg.xml");//得到SessionFactory sessionFactory = configure.buildSessionFactory();//初始化表}此处如果有兴趣可以写一个工具类,一个数据库只需要一个工厂就可以了,即sessionfactory是线程安全的
(八)现在已经完成了配置,现在就可以进行基本的CRUD操作了(这些操作是利用工具类写的)
想要利用Threadlocal,就需要在配置文件中添加一个节点
<!-- 核心配置的修改,要想在工具类中使用本地线程,需要在配置文件中添加此项配置 -->
<property name="hibernate.current_session_context_class">thread</property>
//添加数据 public void addBookIf(BookInfo bookinfo){ Session session = Hibernate.getSession(); Transaction transaction = session.beginTransaction(); Serializable save = session.save(bookinfo); transaction.commit(); session.close(); }
public void findById(long id){ //查找数据 Session session = Hibernate.getSession(); BookInfo info = session.load(BookInfo.class, id); System.out.println(info.getBookType().getTypeName()); }
public void upBookIf(BookInfo bookinfo){ //更新数据 Session session = Hibernate.getSession(); Transaction beginTransaction = session.beginTransaction(); session.update(bookinfo); beginTransaction.commit(); session.close(); }
public void delBookIf(BookInfo bookinfo){ //删除数据 Session session = Hibernate.getSession(); Transaction transaction = session.beginTransaction(); session.delete(bookinfo); transaction.commit(); session.close(); }
阅读全文
0 0
- Hibernate框架(一)
- Hibernate框架(一)
- Hibernate框架(一)
- Hibernate框架(一)
- 框架-------(一)Hibernate框架
- hibernate框架学习心得(一)
- Hibernate框架学习(一)
- 浅谈hibernate框架(一)
- Hibernate框架学习(一)
- Struts2+Hibernate+Spring框架搭建(一)
- Hibernate框架(一)总结介绍
- Hibernate框架详解(一)总结介绍
- 【HIbernate框架学习】:HQL(一)
- Hibernate框架入门一
- Hibernate框架学习(一 )
- Hibernate框架学习(一 )
- Hibernate框架学习(一 )
- Hibernate框架学习(一 )
- Java编程思想之类型信息(反射)
- 冒泡排序java代码实现以及俩个数进行交换时的三种方式
- 判断周围是否有敌人的三种模式
- 面试官问我是直接做笔试题目还是对着笔试题目直接说思路/答案, 我选择后者。
- 在idea中打开maven项目无法引进jar包的解决办法
- Hibernate框架(一)
- [BZOJ]4999: This Problem Is Too Simple! 树链剖分
- 集成tiles框架
- Spark Scala secondsort restart
- mysql语句按某一列的指定规则排序
- python 笔记(二)类与实例
- Mybatis补充
- GoldenDream-九月
- 知识也许是先人留给后辈最大的财富