以下笔记均摘自OneNote的原始笔记,想要获取格式更好的OneNote原始笔记,以及相应的配套视频请访问http://hqyrbl.cn
属性配置讲解
hibernate.cfg.xml
hibernate.cfg.xml它里面的配置相当于是一种全局配置,它是由hibernate使用的,hibernate根据里面的配置信息,再去做具体的解析
hibernate.cfg.xml文件名是固定的,在 new Configuration().configure()中,会加载该配置文件
注意:这里的'/',表示会从src根路径开始寻找hibernate.cfg.xml
*.hbm.xml
hbm.xml它是为具体的Javabean服务的,每一个JavaBean都会对应一个hbm.xml文件,同时hbm.xml配置好后,还要在hibernate.cfg.xml中注册,这样hibernate框架才能访问到它
命名规则
hibernate.cfg.xml连接数据库
程序运行后,就会根据这里的配置信息,自动去连接数据库。
<property name="show_sql">true</property>
在操作mysql的过程中,是否显示具体操作的哪条sql语句,true,是显示。若改为false,hibernate就不会显示其sql语句
<hibernate-mapping>
该标签用于配置JavaBean和表之间应如何来映射
<class name="User" table="user">
name:写上JavaBean的名称
table:协商JavaBean要映射到哪张表上
name和表名若相同,那么表名可以隐藏
<id name="id" column="id">
id标签表示这里的配置的是主键
name:写上JavaBean中代表主键的那个属性,注意:JavaBean代表主键的那个属性,不要在程序中手动赋值,因为mysql会自动生成。
column:代表表的字段名
name和列名若相同,那么列名可以隐藏
<property name="name" column="name"></property>
property 代表表中普通的字段
name:JavaBean的属性名称
column:表中普通字段的名称
<generator class="native"></generator>
generator 有生成的含义,生成什么呢?它表示表中的主键值,应该如何来生成。class中写的就是主键的具体生成方式,class中可用如下值
native
写native的好处,就是兼容mysql和oracle
increment
也会自动增长id,但是它的这种增长是自己Hibernate实现
执行select max(id) 查询,这种会有线程并发问题
hilo
hibernate自己实现的id规则【不用,不用学】
identity
mysql的数据库不写native,就写identity也行
主键自增长, mysql/sqlservlet等数据库使用的自增长的方式
sequence
以序列的方式实现自增长;oracle中才会用
assigned
手动指定主键id的值
uuid
uuid的值作为主键,确保一定唯一
虽然uuid的值不重复,但长度太长了