初识Hibernate及简单的手动创建配置文件
来源:互联网 发布:2015年江苏省旅游数据 编辑:程序博客网 时间:2024/05/22 05:17
什么是Hibernate?
Hibernate是一个用于简化数据库操作的ORM框架。
什么是ORM?
O:Object,表示一般的JavaBean对象;
R:Relationship,表示数据库中的关系表;
M:Mapping,映射、关联的意思;
合起来,就是对象关系映射。
Hibernate有哪些优点?
1、更加的面向对象。(什么是面向对象?)
2、非侵入式的轻量级框架。(什么是非侵入式)
3、提高了开发的效率。
4、平台无关性,方便移植。
如何使用Hibernate?
1、导入Hibernate所需依赖(什么是依赖?)
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
2、配置hibernate.cfg.xml文件
步骤:
1)在src根目录下创建一个hibernate.cfg.xml文件。
2)找到配置模板(在<hibernate_home>/project/etc目录下的hibernate.cfg.xml文件)
<!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>
<session-factory>
<!-- 这个属性为在控制台打印sql语句 -->
<property name="show_sql">true</property>
<property name="show_sql">true</property>
<!-- 指定Driver类的路径 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 指定数据库的url,localhost:3306为数据库的IP和接口,db_hlh为数据库名称 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db_hlh</property>
<!-- 数据库的账号 -->
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db_hlh</property>
<!-- 数据库的账号 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库的密码 -->
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.password">123456</property>
<!-- 关联数据库和Object的文件 -->
<mapping resource="com/javen/demo/user.hbm.xml"></mapping>
</session-factory>
<mapping resource="com/javen/demo/user.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
3、创建JavaBean对象并且配置bean.hbm.xml文件
1)在src目录下创建一个DTO包(DTO:data transfer object==JavaBean),并且在包里创建一个class,
所有属性全设为private并且为每个属性创建set和get方法。
2)在同一个包下面创建bean.hbm.xml文件(bean为对应的class名)
<?xml version="1.0"?>
<!-- DTD头文件可以在hibernate-core包下的org.hibernate包下的hibernate-mapping-dtd文件中查找 -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-5-15 10:36:21 by Hibernate Tools 3.5.0.Final -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-5-15 10:36:21 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<!-- com.hehe.DTO.TbStudent为类名,tb_student为与之关联的表名,db_homework为表所在的数据库名(可以不要) -->
<class name="com.hehe.DTO.TbStudent" table="tb_student" catalog="db_homework">
<!-- stuId一般为表的主键所对应的属性名,java.lang.Integer为stuId的类型 -->
<id name="stuId" type="java.lang.Integer">
<!-- stu_id为表的主键,identity为主键的生成策略中的一种(详细见附1) -->
<column name="stu_id" />
<generator class="identity" />
</id>
<!-- stuName为JavaBean对象的属性名,string为stuName的类型 -->
<property name="stuName" type="string">
<!-- stu_name为对应的字段名 -->
<column name="stu_name" length="100" />
</property>
</class>
</hibernate-mapping>
<!-- com.hehe.DTO.TbStudent为类名,tb_student为与之关联的表名,db_homework为表所在的数据库名(可以不要) -->
<class name="com.hehe.DTO.TbStudent" table="tb_student" catalog="db_homework">
<!-- stuId一般为表的主键所对应的属性名,java.lang.Integer为stuId的类型 -->
<id name="stuId" type="java.lang.Integer">
<!-- stu_id为表的主键,identity为主键的生成策略中的一种(详细见附1) -->
<column name="stu_id" />
<generator class="identity" />
</id>
<!-- stuName为JavaBean对象的属性名,string为stuName的类型 -->
<property name="stuName" type="string">
<!-- stu_name为对应的字段名 -->
<column name="stu_name" length="100" />
</property>
</class>
</hibernate-mapping>
4、初始化Hibernate并且获取session对象
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
5、使用获取的session对象进行查、改、增、删
1)查找(使用最多的为下面的根据id(主键)查找)
session.get(param1,param2);-------->勤加载(不管需要不要一次性加载完)
param1:为想要查找的表对应的类名.class;
param2:为id;
返回的为param1对象
session.load(param1,param2);-------->懒加载(只有需要的时候才加载)
param1:为想要查找的表对应的类名.class;
param2:为id;
返回的为param1对象
2)修改(修改数据需要开启事务进行,只有提交事务后才能修改成功)
//首先根据ID查找出需要修改的表对应的对象
TeacherDTO teacher=session.get(TeacherDTO.class,4);
//修改某个字段的值
teacher.setTeacherName("曹老师");
//开启事务
Transaction transaction=session.beginTransaction();
//利用修改后的对象更新数据
session.update(teacher);
//提交事务
transaction.commit();
//关闭session
session.close();
3)新增(增加数据需要开启事务进行,只有提交事务后才能增加成功)
//创建一个对象
TeacherDTO teacher=new TeacherDTO();
//设置属性的值
teacher.setTeacherName("曹老师");
//开启事务
Transaction transaction=session.beginTransaction();
//将对象存入数据库中
session.save(teacher);
//提交事务
transaction.commit();
//关闭session
session.close();
4)删除(删除数据需要开启事务进行,只有提交事务后才能删除成功)
//开启事务
Transaction transaction=session.beginTransaction();
//首先根据ID查找出需要删除的表对应的对象
TeacherDTO teacher=session.get(TeacherDTO.class, 5);
//将数据库中对象对应的对应的那行删除
session.delete(teacher);
//提交事务
transaction.commit();
//关闭session
session.close()
附1:
Hibernate主键生成策略:
<generator class="" />
class的常用取值有:
assiggned:主键由外部程序负责生成,在save()之前指定一个id
native:由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。
identity:采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制
sequence:采用数据库提供的sequence机制生成主键。如 Oralce 中的Sequence
阅读全文
0 0
- 初识Hibernate及简单的手动创建配置文件
- 创建Hibernate的配置文件
- Hibernate工程的手动创建
- Hibernate初识---------------一个简单的hibernate开发
- hibernate-MySQL配置文件及简单应用(CRUD)
- hibernate-MySQL配置文件及简单应用(CRUD)
- 如何用eclipse手动创建动态web项目的xml配置文件及创建动态web项目时一同创建xml配置文件
- Hibernate配置文件创建及解析,hibernate.cfg.xml----Hibernate_0
- Hibernate学习一:配置及简单实例的创建过程
- 手动创建UIWindow及UIWindowLevel的说明
- 初识Qt,创建简单的widget!
- spring配置文件applicationContext.xml配置hibernate的连接数据库信息及sessionFactory创建方式
- log4j配置文件详解及手动加载的方式
- Hibernate主副配置文件的简单讲解
- hibernate的配置文件及连接池
- Hibernate的学习(创建配置文件hibernate.cfg.xml)
- Hibernate 3学习笔记 - 简单的Hibernate配置文件
- 手动配置及开发Hibernate
- 项目立论
- 数据结构之双向循环链表
- ElasticSearch使用入门-增删查改
- 嵌入式视频方案学习第六篇——视频输入
- Java 事物的概念以及延伸
- 初识Hibernate及简单的手动创建配置文件
- Kotlin学习笔记(二)-类和对象
- AndroidStudio快捷键大全
- 单向循环链表
- 双向循环链表简单的插入、删除、修改以及查找功能的实现
- Learn1_彩色三角形
- PAT-A-1090. Highest Price in Supply Chain (25)
- python中list与tuple转化及三种小数取整方式
- Kafka入门-windows安装测试