ORM元数据
根元素
package属性:填写一个包名,在根元素内部需要填写完整类名的属性,可以直接填写简单类名
<hibernate-mapping package="com.heima.domain"></hibernate-mapping>
class元素
class元素:配置实体与表的对应关系
name:完整类名
table:数据库表名
<class name="Customer" table="cst_customer"></class>
id元素
id元素:配置主键映射的属性
name:填写主键对应属性名
column(可选):填写表中的主键列名,默认值:列名会默认使用属性名即name的值
type(可选):填写列(属性)的类型,hibernate会自动检测实体的属性类型
每个类型有三种类型:java类型、hibernate类型、数据库类型
not-null(可选):配置改属性(列)是否不能微空,默认值:false
length(可选):配置数据库中列的长度,默认值:使用数据库类型的最大长度
<id name="cust_id" column="cust_id"></id>
property元素
property元素:除id之外的普通属性映射
name:属性名,实体字段名
column(可选):填写列名,默认值为属性名
type(可选):填写列(属性)的类型,hibernate会自动检测实体的属性类型
每个类型有三种类型:java类型、hibernate类型、数据库类型
not-null(可选):配置改属性(列)是否不能微空,默认值:false
length(可选):配置数据库中列的长度,默认值:使用数据库类型的最大长度
<property name="cust_name" column="cust_name"></property>
hibernate主配置文件
hibernate主配置文件命名:hibernate.cfg.xml
hibernate主配置文件位置:src目录下
必选属性配置(5个)
<!-- 数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库url --> <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property> <!-- 数据库用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库用户密码 --> <property name="hibernate.connection.password">123456</property> <!-- 数据库方言 --> <!-- 不同的数据在语法细节上有差别,例如limit为mysql语法,在翻译的时候需要指定使用的数据方言 --> <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
可选属性配置(3个)
<!-- hibernate将生存的sql打印到控制台 --> <property name="hibernate.show_sql">true</property> <!-- 将打印的sql语句进行格式化后在打印 --> <property name="hibernate.format_sql">true</property> <!-- create:自动建表,每次框架运行会创建新的表,以前表将会被覆盖,表数据丢失(开发环境中测试使用) create-drop:自动建表,每次框架运行结束都会将所有表删除,(开发环境中测试使用) update(推荐使用):自动生存表,如果已经存在不会再生成,如果表有变动,自动更新表 validate:校验,不自动生存表,每次启动会校验数据库中表是否正确 --> <property name="hibernate.hbm2ddl.auto">update</property>
元数据引入配置
<!-- 路径书写:src下的路径 --> <mapping resource="com/heima/domain/Customer.hbn.xml"/>