开发第一个hibernate例子

1、导入hibernate所需的jar包,导入JDBC连接的驱动包

2、编写实体类User.java
hibernate 要求实体类有一个属性值是唯一值、属性值都是私有的且有set、get方法。
3、创建实体映射文件,映射文件名称和位置没有固定要求,建议写在实体类包下,名称:实体类名称.hbm.xml,这里为user.hbm.xml
注:
①class标签:定义了类和对应数据库表之间的关联关系
②id标签:为对应数据库表的主键
③property标签:元素映射值类型。
④映射文件中,标签name是写实体类相关的内容。
  a.class标签name属性时实体类的全路径,id标签的name和property标签name属性值是实体类属性名称。

⑤id标签和property标签中column属性可以省略,省略时生成的数据库表默认与实体类属性相同。

⑥property标签type属性,设置生成表字段的类型,可以省略,会自动对应类型。

4、Hibernate的核心配置文件的编写

Hibernate配置文件名为:hibernate.cfg.xml,一般不要修改名称,并放在src目录下,该文件的主要目的是为了连接到数据库。

以MySql为例:

com.mysql.jdbc.Driverrootrootorg.hibernate.dialect.MySQLDialecttruetrue

注:
①hibernate操作过程中只加载核心配置文件,其它配置文件不会加载(例如:user.hbm.xml映射文件不会加载)。

②<property name="hibernate.hbm2ddl.auto">update</property>
update:如果已有表,更新,如果没有表就创建。
create:如果原有表存在,先删除,再创建新的表。
create-drop:先创建再删除。
validate:对原有表结构验证,若现有表结构与原来不同,就不会创建表。
③配置数据库方言:不同的数据库的语法不一样,让hibernate框架识别不同的数据库语句。
5、获取session
// 第一步 加载hibernate核心配置文件
//在src下面找到hibernate.cfg.xml
Configuration cfg = new Configuration().configure();
// 第二步 获取sessionFaction对象,读取hibernate核心配置文件,创建SessionFactory
// 根据映射关系,在配置的数据库里创建表
SessionFactory sf = cfg.buildSessionFactory();
// 第三步 获取session对象
//类似于连接
Session session = sf.openSession();
//第四步 开启事务
Transaction ts=session.beginTransaction();
//第五步 增删改查
User user = new User();
user.setUsername("小一");
user.setPassword("123");
session.save(user);
//第六步 提交事务
ts.commit();
//第七步 关闭资源
session.close();
sf.close();

Hibernate 5 个核心接口:

Configuration接口:加载hibernate核心配置文件,在src下面找到hibernate.cfg.xml,把配置文件放到对象里面。

Configuration cfg=new Configuration().configure();

SessionFactory接口:创建sessionFaction对象,读取hibernate核心配置文件,根据核心配置文件中数据库的配置、映射关系,在数据库里创建表。

SessionFactory sf=cfg.buildSessionFactory();

创建SessionFactory的过程中,这个过程是消耗资源,性能低,一般在Hibernate操作中一个项目创建一个SessionFactory对象。(写一个工具类,写静态代码块实现。)

public class HibernateUtil{static  Configuration cfg = null;static  SessionFactory sf = null;static{cfg = new Configuration().configure();SessionFactory sf = cfg.buildSessionFactory();}public static SessionFactory getSessionFactory(){return sf;}
}

Session接口:类似于jdbc中的connection。单线程对象,session对象不能共用。

Sessionsession=sf.openSession();

保存:save方法、修改:update方法、删除:delete方法、查询:根据id用get方法。

Transaction接口:管理事务。

Transaction ts=session.beginTransaction();

ts.commit();//提交事务

ts.rollback();//事务回滚

使用hibernate时候不需要手动创建表,hibernate会帮我们把表创建哦,我们也可以使用根据数据库表逆向生成实体类。

Hibernate配置文件的编写一相关推荐

  1. Hibernate配置文件解释

    Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性 每个Hibernate配置文件对应一个Configuration对象 Hibernate配置文件可以有两种格式 ...

  2. hibernate.cfg.xml hibernate 配置文件模板

    <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition ...

  3. 从一个hibernate配置文件中了解到的东西

    2019独角兽企业重金招聘Python工程师标准>>> 业务场景: 先展示一份hibernate配置文件,然后来详细说里面蕴含的东西. <?xml version=" ...

  4. linux查看xml文件的配置,Hibernate配置文件hibernate.cfg.xml的详细解释

    Hibernate配置文件hibernate.cfg.xml的详细解释 [日期:2012-12-13] 来源:Linux社区 作者:jqyp [字体:大 中 小] /p> "-//Hi ...

  5. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. hibernate配置文件hibernate.cfg.xml的详细解释

    <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式-->                  <? ...

  7. Hibernate配置文件

    进入Java的学习,没少接触配置文件,尤其学习SSH时,配置文件尤其多,Struts配置文件Struts.xml,Spring配置文applicationContext.xml,Hibernate配置 ...

  8. Hibernate配置文件与映射文件详解

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...

  9. 连接oracle配置文件参数,Hibernate3 +Oracle10g 集群,hibernate配置文件中如何编写连接参数...

    遇见问题: 使用hibernate3来连接Oracle10g的集群,连接时不稳定,有时候正常连接,有时候不能正常连接.不知道是不是配置文件有问题,请大家帮我查看一下,谢谢各位了! 开发工具:Eclip ...

最新文章

  1. 微信小程序 通过云函数请求http网站接口
  2. PAT甲级1086 Tree Traversals Again:[C++题解]二叉树中序序列、栈、求后序遍历
  3. 以下不属于时序逻辑电路的有_电工电子技术(不建议浪费时间学习的科目)
  4. android开发仿原生联系人,android 仿IOS联系人列表
  5. Grub2中文指南4---开机影像和主题
  6. GDAL中的SURF算法
  7. java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性
  8. [leedcode 229] Majority Element II
  9. go语言中关于文件的操作+工作目录的拼接
  10. 蓝奏云无视密码强制下载器
  11. 信息系统运行管理员有必要考吗?现在备考还来得及吗?
  12. MATLAB2017b libsvm安装教程
  13. vue项目的停止_Terminal怎么停止VUE项目
  14. 起风了用计算机打,《起风了》计算机简谱
  15. 蓝桥杯历届试题-回文数字
  16. 繁体转简体 java_在java中,怎么把繁体字转化为简体字
  17. 特殊符号(包括数字和字母)
  18. sofelf转jic
  19. ESL4.5 学习笔记(含感知器内容SVM预备知识)
  20. 阿里云盾AliYunDun服务IO超高

热门文章

  1. vim编辑器(超详细!)
  2. “遇冷”的电影节背后:“元宇宙”能为其成功“续热”吗?
  3. 主流技术之网易云换肤方案
  4. 新零售模式对传统批发零售业在商业模式与技术上的影响
  5. vue-draggable学习和使用
  6. org.springframework.boot:spring-boot-starter-velocity:unknown以及其他依赖因spring版本不同无法加载
  7. cpython下载_一、Python简介及下载安装
  8. win10 移动文件夹和移动文件
  9. python 非线性规划
  10. 模糊数学导论——模糊聚类分析