hibernate初始配置解释

hibernate   是一个轻量级ORM(对象关系映射关系)工具.简化了java应用程序和数据库交互的开发,三层架构中的持久层

(代替了MVC中的JDBC部分)

(只和数据库打交道)

首要配置:导入对应的jar包  以及连接数据库要用的包,我用的是mysql数据库.所以导入 mysql-connector-java-5.1.41-bin.jar 

一共十三个jar包

主要体系结构:

User  实体类.对应数据库中的表  成员变量对应表里的字段

User.hbm.xml      javaBean的映射文件,实体类和数据库表的映射配置    后缀为hbm.xml,名字最好对应实体类

hibernate.cfg.xml     对hibernate的全局设置    后缀为cfg.xml  名字可以自定义


实体类:

private Integer sid;
private Integer age;
private String name;

//无参构造方法
//有参构造方法

//成员变量的set和get方法


实体类映射文件:

<?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">
<!--实体类和数据库表的映射配置-->
<hibernate-mapping>         
<!--实体类和数据库表的映射关系   name是要建立映射关系的类(包名+类名)  table是表名 -->
    <class name="com.uu.mode.User"     table="">        

<!-- 主键配置    name是类中成员变量名字, column是表中主键的字段名  -->
       <id name="'  column="">                     
<!-- generator是主键生成策略(字段约束) native的意思是跟随数据库 -->
            <generator class="native"></generator>        
       </id>

<!-- 这两个是字段映射  name是成员变量名  column是字段名 -->
      <property name=""  column=""></property>      
      <property name="" column=""></property>
   </class>
</hibernate-mapping>

//generator一共有7种写法,比较常用的便是native 
//自行选择identity(递增),sequence(序列,无法在mysql中使用)或hilo(一种算法)中的一个

全局设置:
<!-- 对hibernate全局设置 -->
<hibernate-configuration>
    <!--对session工厂的设置  -->
	<session-factory >
	<!--四本一言的设置   -->
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF8</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">123456</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<!--控制是否显示sql语句  -->
		<property name="show_sql">true</property> 
		<property name="format_sql">true</property>
                <!--  hbm2ddl.auto的参数作用是:自动创建/更新/验证数据库表结构,根据参数内容做不同处理 -->
		<property name="hbm2ddl.auto">update</property>
		<!-- 引入映射文件 -->
		<mapping resource="com/uu/model/User.hbm.xml"/>
		
	</session-factory>
</hibernate-configuration>

四本:  数据库名称 数据库密码 数据库驱动 以及数据库路径
一言:  也就是方言,不同的数据库他们的SQL语句也不同.所以这里设置不同的方言,内置函数也会不同
show_sql 是否显示sql语句    format_sql是给sql语句排版(格式化),否则会输出语句集中在一起
mapping  result则是引入实体类的映射文件

generator是hibernate主键生成,常用的是native


hbm2ddl.auto  如果不适用可以不写

create  每次加载hibernate都会删除上一次的表,根据model类生成新表(数据丢失)

create-drop   每次加载都会创建一个新表.sessionFactory关闭后自动删除(数据丢失)

update  启动时会根据model类自动更新表结构,即使表结构改变,表中数据仍然存在;如果表不存在会直接创建一个表(要有数据库存在).运行后才会创建   (推荐使用)

validate  每次加载hibernate时,验证表结构(如果表不存在或结构不一致会抛出异常),不会创建新表,可以插入新数据




猜你喜欢

转载自blog.csdn.net/y2418230874/article/details/81043322