hibernate框架初次搭建并使用

来源:互联网 发布:基金公司招聘条件 知乎 编辑:程序博客网 时间:2024/04/30 11:53

hibernate理解;是一个jdbc的轻量级的对象封装,他是个独立对象的人持久层框架(Dao)一般用户和数据库打交道。

工具:idea软件,hibernate相关包,数据库驱动包,下面是我所使用的包

图1

hibernate的搭建:

第一步:需要引入相关的包文件

第二步:创建一个实体类对象:实体类对象(如果通过hibernate创建表,则实体类对象可以随便写你想创建的属性名,如果已经有表则对应表中字段创建属性)

第三步:创建一个类。目的:用于实现将对象存到数据库中或从数据库中获取数据对象

创建的类中必须要有的几个步骤:

图2

对数据库中的增删改查都通过session对象进行操作:(下面具体demo在详细介绍)

文件的配置:包括两个配置(映射配置和hibernate配置)

《1》映射配置:作用:实现将java中创建的实体类中对应的属性与数据库中的表字段对应上(即映射)(文件名要求:实体类名.hbm.xml):

配置文件内容如下:(一对一映射)

如图1

映射配置文件详细说明:(一个完整的表中有一个唯一的主键所以配置文件中分主键和非主键之分)

<hibernate-mapping></hibernate-mapping>是一个根节点映射属性字段必须在根节点里面。里面的package指的是实体类所在的包名

<class></class>表示对应于一个表(如果想跟多个表映射就必须有多个class节点,一般一个映射对应一个表便于后期维护)table对应表名(创建表时不写则默认实体类名)

<id></id>中是映射主键。name值对应实体类属性,column值对应表中字段(可不写)length值;字段的长度(创建表时用的)type表中字段类型

<generator class=“native””/>native表示表中主键是自增长的。(如果已经存在表,则表中的主键创建必须是primary key auto-increment,否则运行报错

<property></property>中是映射非主键的(里面的name,column..与上面一样)

hibernate配置文件说明(文件名要求hibernate.cfg.xml必须放在src 目录下因为new Configuration().configure是默认加载src目录下的hibernate.cfg.xml配置文件)

如图

如图

hibernate主配合文件里面包括三部分配置:数据库连接配置,其他参数配置,加载映射资源配置

<hibernate-configuration></hibernate-configuration>hibernate配置的根节点,所有配置必须放在里面

数据库配置:(必须配置)

<property name="hibernate.connection.driver_class"></property>数据库驱动

<property name="hibernate.connection.url"></property>连接数据库路径

<property name="hibernate.connection.username"></property>数据库连接时用户名

<property name="hibernate.connection.password"></property>数据库登录密码

其他参数配置:(可以不配置)

<property name="hibernate.show_sql"></property>hibernate向数据库操作时可以在控制台显示相应的sql语句

<property name="hibernate.format_sql"></property>hibernate向数据库操作时可以在控制台显示相应的sql语句时格式化(目的;便于看清sql语句)

<property name="hibernate.hbm2ddl.auto">update</property>自动对数据库中创建表其中还有其他几个类型

create:创建表,库中有表的话删除重建

update:创建表或者更新表(无表创建有表跟新数据)

create-drop:每次在执行sessionFactory创建表,在sessionFactory.close()删除表

validate:当映射文件内容与表结构不一致时报错。

 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。以上是hibernate主要配置说明。。。。。。。。。。。。。。。。。。。。。。。

Demo :如何向表中增删改查

增:在上面创建类图上面用session.save(实体类对象)

改:这里说明两种方法

<1>session.update(实体类对象)

如图1

第二种方式:

如图1

删除:

删除

查询数据

查询数据

以上都以实际测试过,没有任何问题

0 0