hibernate配置文件
- 将对象映射为数据库的关系可以采用注解或配置文件,我们先接触配置文件
- 配置文件默认命名为hibernate.cfg.xml,改名的话需要另外指定;默认位置为src下。
先在以上命名文件中配置好数据库连接、方言设置,指定是否打印sql语句、更新表结构方式的方法和映射文件
<?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-configuration> <session-factory> <!-- 数据库连接设置 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <!-- 方言 --> <property name="dialect">org.hiberate.dialect.MySQL5Dialect</property> <!-- 控制台显示sql --> <property name="show_sql">true</property> <!-- 自动更新表结构 --> <property name="hbm2ddl.auto">update</property> <!-- validate【每次运行会校验数据与数据库的字段类型是否相同,不同则报错】、 create【每次运行程序,没有表格会新建,表内有数据会清空】、 create-drop【每次程序结束时会清空表】、 update【每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新表结构,但是原有的字段不会删掉,就算是把该字段改名了也还是会保存原有这个字段,所以易出现相同意义字段重复情况;即使表结构改变了但原有的记录不会删除】、) --> <!-- 指定文件进行对象关系映射 --> <mapping resource="com/java1234/model/Student.hbm.xml"/> </session-factory> </hibernate-configuration>
配置映射文件
- 命名、位置随意,将pojo和表对应。
- 一个pojo对应一个映射文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.java1234.model">
<class name="Student" table="t_student"> <!-- 要映射的对象为Student,表为t_student -->
<!-- 主键配置用标签id -->
<id name="id" column="stuId">
<generator class="native"></generator> <!-- 生成策略为按照本地,这里是自增 -->
</id>
<!-- 其他字段配置用property标签 -->
<property name="name"></property> <!-- 省略column表示字段和属性名相同 -->
</class>
</hibernate-mapping>
主键生成策略:
- increment:由hibernate自动以递增的方式生成主键(插入数据前查询最大主键并自动加一)
- identity:由底层数据库自动生成标识符(MySQL是自增)
- native:根据底层数据库自动选择以上方式(sql是identity)
代码实例
- eclipse->HibernateDDL