Hibernate
-----------正向生成表
Hibernate它相较于mybatis来说,是一种全自动的ORM框架
再者就是在Hibernate当中几乎看不见射门sql语句,而mybatis底层是由sql语句的;
Hibernate将jdbc进行了封装,它具有数据库的兼容性;
在herbernate当中,我们需要明确三点:
表和类的关联; 对象标注记录的关联; 类的属性和表当中字段的关联;
而且是由hibrenate是表是一定要有主键的,用来唯一标识;
即用面向对象的方式来创建数据库;
在这个专题当中我们会介绍的内容有:
由hibernate的文件生成数据库当中的表;
由数据库生成所需要的文件,如pojo等,也叫做逆向工程;
HQL语言;
Hibernate获取session的方式;
Hibernate当中多表之间的关联方式,解决方式;
Hibernate的检索方式;
Pojo的状态,以及session的缓存,快照机制;
接下来我们就来用hibernate当中的文件来生成具体的数据库表;
首先我们需要编写的文件有三个:
核心配置文件,要生成的表对于的实体类,以及将该实体类转化为具体表的文件
当然如果你想要生成多张表,那么你就应该编写多个实体类以及它对应的映射文件;
首先第一个就是实体类:
1.这里我们一javauser为例具体看下面代码:
我们在这里写的每一个属性对应的就是数据库表当中的字段,而这个类名就是数据库的表名
2.第二个就是我们将该实体类转化为具体的表的配置文件:
这是一个头部的声明,标明了hibernate-mapping这是类对应配置文件的标志
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<!--
解决的问题就是有
a.class中的name解决的是类与表的对应
当中的id解决的是对象和行的关联 还需要指定主键的自动生成方式
b.最后就是解决属性与数据库中字段的对应
实际就是用面向对象的思想来操作关系型数据库
-->
<class name="com.ww.pojo.JavaUser" table="JavaUser">
<id name="id" column="id">
<!-- 指定主键生成的方式 不同的数据库可能会有不同-->
<generator class="identity"></generator>
</id>
<property name="name" column="name"></property>
<property name="password" column="password"></property>
</class>
</hibernate-mapping>
3.核心配至文件
同样它也是有头部得hibernate-configuration代表得就是这是hibernate得核心配置文件
<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/user?characterEncoding=utf-8</property>
<property name="connection.username">root</property>
<property name="connection.password">root2</property>
<!--\\指定方言,不同得数据库有不同得方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL55Dialect</property>
<!--自动生成-->
<property name="hbm2ddl.auto">update</property>
后面得可以编写,小编只是为了让创建表得sql语句在控制台打出来,并将其格式化,从而方便查看
<!--显示Sql-->
<property name="hibernate.show_sql">true</property>
<!--格式化-->
<property name="hibernate.format_sql">true</property>
</session-factory>
</hibernate-configuration>
之后若是要开是开发,要做得就是将类对应得配置文件在核心配置文件当中注册
这样才能通过类去操做数据库
<mapping resource="com/qf/pojo/JavaUser.hbm.xml"></mapping>
4.生成
之后我们就需要去加载配置文件去生成对应得表;
也就是初始化操作:
编写主方法我i调用这样方法就可生成,当然这只是单个框架得做法,在后面整合时候就不需要这样做了;
之后就可以编写具体得方法去给你新建得表当中去添加数据了;
以上就是正向生成,下篇将会对逆向工程进行介绍;
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/qq_42112846