配置文件:和自己封装的工具类放在同一个包中

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- ■■■■■■■■文件的名字是:Customer.hbn.xml -->
<hibernate-mapping>
<!-- 配置类和表结构对的映射 -->
<!-- 用 一个类,和另一个表关联,Hibernate框架的本意就是这样 -->
<class name="com.itheima.domain.Customer" table="cst_customer">
<!-- 配置id 见到name属性,JavaBean的属性 见到column属性,是表结构的字段 -->
<id name="cust_id" column="cust_id">
<!-- 主键的生成策略 -->
<generator class="natine"></generator>
</id>
<!-- 配置其他属性 -->
<property name="cust_name" column="cust_name"></property>
<property name="cust_user_id" column="cust_user_id"></property>
<property name="cust_create_id" column="cust_create_id"></property>
<property name="cust_source" column="cust_source"></property>
<property name="cust_industry" column="cust_industry"></property>
<property name="cust_level" column="cust_level"></property>
<property name="cust_linkman" column="cust_linkman"></property>
<property name="cust_phone" column="cust_phone"></property>
<property name="cust_mobile" column="cust_mobile"></property>
</class> </hibernate-mapping>

核心配置文件:和操作的Demo放在同一个包中

 <?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.cfg.xml -->
<hibernate-configuration>
<!-- 记住,先配置SessionFactory标签,一个数据库对应一个SessionFactory标签 -->
<session-factory>
<!-- 必须也要配置的参数有5个,4大参数,数据库的方言 -->
<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">123</property>
<!-- 数据库的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 可选配置 --> <!-- 映射配置文件 -->
<mapping resource="com/itheima/domain/Customer.hbn.xml"/> </session-factory> </hibernate-configuration>

可选配置:

 <!-- 可选配置 -->
<!-- 在控制台显示SQL语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化显示SQL语句 ,用来显示查看自己生成的代码错误在哪里 -->
<property name="hibernate.format_sql">true</property>
<!-- 生成数据库的表结构,自己测试用的,还有一种功能是先删除,在创建,创建之后再删除-->
<property name="hibernate.hbm2ddl.auto">create</property>
<!-- 生成表结构的数据,创建表结构,如果存在,不会创建,添加数据 -->
<property name="hibernaye.hbm2ddl.auto">update</property>

Configuration的对象和方法:
如果想自动加载hibernate.cfg.xml配置文件的话,就需要加载配置文件,然后调用configure()方法,这个方法底层就是调用xml配置文件,具体如下:

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

如果自己配置的是属性文件的话,加载的话就如下代码:
Configuration config = new Configuration();
属性文件不能完成映射,不推荐使用。

加载配置文件最简便的写法:
Configuration config = new Configuration().configure();
这种方法叫做方法链的编程,到后期会把这段代码加载成静态代码块

技术分析SessionFactory接口和特点:
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
他是重量级的,也就意味着不要轻易的创建或者去销毁他。

SessionFactory是一分为二的,左边是内部结构,右边是外部结构,内部结构是不允许操作的,而内部结构自己会进行缓存,缓存一些基本的SQL语句和加载的配置信息的;外部结构被称为二级缓存,在这里就不讲解了。

SQL语句都缓存在xml文件中的<session-factory>标签中

11-技术分析之SessionFactory接口和特点_后面有个工具类,需要记住

Session负责增删改查

常用的方法:
save 添加
delete 删除
get 查询---只能查一条记录
saveOrUpdate 保存或者修改
createQuery 查询时候的接口

最新文章

  1. 使用SqlDataReader和SqlDataAdapter的注意
  2. c#向数据库插入较大数据(SqlBulkCopy)
  3. 调用微信JsAPI端获取位置
  4. winform flash
  5. mono for android 各版本下载地址
  6. Swift实战之2048小游戏
  7. CSS3详解:background
  8. C# 遍历类的属性并取出值
  9. DDR(二)
  10. javascript数组去重的三种常用方法,及其性能比较
  11. Run ionic web app in nodejs
  12. Mac OS + Nginx + Mysql + PHP 本地环境搭建
  13. Quartz 开源的作业调度框架
  14. 老李分享:接电话之uiautomator 2
  15. HDU4508--完全背包
  16. js方法实现--上传文件功能
  17. Flask开发微电影网站(六)
  18. zabbix server is not running,the information dispalyed may not be current
  19. 微信小程序调用接口返回数据或提交数据
  20. anu - react

热门文章

  1. cc1.exe -fno-stack-protector
  2. InstallShield详细制作说明(四)
  3. chocolatey 的安装与安装过程中的注意事项
  4. [转载]Google Java Style 中文版
  5. poi完美word转html(表格、图片、样式)
  6. android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结
  7. 一种较为隐蔽ConcurrentModificationException情形
  8. Windows Forms 窗体篇
  9. 查看网站使用何种框架或者技术的插件——Wappalyzer
  10. amazeui学习笔记--css(常用组件8)--列表list