企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
实体类Customer目前还不具备持久化操作的能力,而Hibernate需要知道实体类Customer映射到那个表,以及类中的那个属性对应数据库表中的那个字段,这些都需要在映射文件中配置 在实体类Customer所在包中,创建一个名为Customer.hbm.xml映射文件,在该文件中,会定义实体类Customer的属性是如何映射到cst_customer表的列上 导入xml的dtd ![](https://box.kancloud.cn/d6a09d962b2f866cbee5835d22d830fc_1520x1070.png) ![](https://box.kancloud.cn/d527a7babeaa9e978c7e9f2c7e6bebc0_1100x896.png) ~~~ <?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"> <!-- 配置表与实体对象的关系 --> <!-- package属性:填写一个包名.在元素内部凡是需要书写完整类名的属性,可以直接写简答类名了. --> <hibernate-mapping package="domain"> <!-- class元素: 配置实体与表的对应关系的 name: 完整类名 table:数据库表名 --> <class name="Customer" table="cst_customer" > <!-- id元素:配置主键映射的属性 name: 填写主键对应属性名 column(可选): 填写表中的主键列名.默认值:列名会默认使用属性名 type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型. 每个类型有三种填法: java类型|hibernate类型|数据库类型 not-null(可选):配置该属性(列)是否不能为空. 默认值:false length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度 --> <id name="cust_id" > <!-- generator:主键生成策略 --> <generator class="native"></generator> </id> <!-- property元素:除id之外的普通属性映射 name: 填写属性名 column(可选): 填写列名 type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型. 每个类型有三种填法: java类型(要写全了java.lang.string)|hibernate类型(string)|数据库类型 not-null(可选):配置该属性(列)是否不能为空. 默认值:false length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度 --> <property name="cust_name" column="cust_name" > <!-- <column name="cust_name" sql-type="varchar" ></column> --> </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_phone" column="cust_phone" ></property> <property name="cust_mobile" column="cust_mobile" ></property> </class> </hibernate-mapping> ~~~ 主键类型 ![](https://box.kancloud.cn/3625c2c3564a8a20d13a77af4adfcfe5_746x140.png) ![](https://box.kancloud.cn/6473132d5b2c61cf836ead2af7b96e73_752x104.png) 主键生成策略 ![](https://box.kancloud.cn/106f19ac49570d558487bb8ccac45e46_716x584.png)