开发第一个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. 移动、联通、电信7模4G全网通
  2. 记录一次与大神们的关于GAN应用于NLP的讨论 (后续)
  3. BZOJ 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝( dp )
  4. Redis持久化(RDB 和 AOF)
  5. Hadoop精华问答 | NameNode的工作特点
  6. Java基础04 编译与反编译
  7. win7下如何建立ftp服务器
  8. vue-router的beforeEach的使用?
  9. VSCode尝试在目标目录创建文件发生错误
  10. chrome浏览器下audio自动播放的hack
  11. LeetCode:每日一题——数位成本和为目标值的最大数字
  12. 桌面魔术可以用透明桌子揭密
  13. 奥本海姆信号与系统第2版笔记和课后答案
  14. matlab 平滑曲线连接_从零开始的matlab学习笔记——(16)函数绘图
  15. oracle备份数据exp,oracle数据库备份之exp增量备份
  16. 《精益创业》- 天下大事必作于细,天下难事必作于易
  17. 国产芯片---超高速、高输出电流,电压反馈放大器MS8241兼容替代LM7171
  18. (转)DCB文件格式解析
  19. 行人检测/人体检测综述
  20. 如何检测新移动硬盘--HD Tune Pro硬盘工具

热门文章

  1. SVM支持向量机+实例展示
  2. 设计模式 - 结构型模式_外观模式
  3. python静态变量命名_Python中的静态类变量
  4. 因果推断系列17 - 合成控制法
  5. 修改虚拟机中屏幕分辨率的方法(Linux)
  6. 用matlab做巴特沃斯低通滤波器
  7. AI篮球裁判火了,走步算得特别准,就问哈登慌不慌
  8. ip子网划分计算题举例说明
  9. CAKEPHP 求助指南
  10. studioone机架效果模板_贾爽的分享-贾爽:带你认识StudioOne机架自带的两个混响效果器!...