初识Hibernate及简单的手动创建配置文件
2017-05-22 23:12
387 查看
什么是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>
<!-- 这个属性为在控制台打印sql语句 -->
<property name="show_sql">true</property>
<!-- 指定Driver类的路径 -->
<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.password">123456</property>
<!-- 关联数据库和Object的文件 -->
<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-co
4000
re包下的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 -->
<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
相关文章推荐
- 使用hibernate自动在MYSQL中创建表,极其简单,改下配置文件。
- java中利用spring动态的创建hibernate的配置文件
- Hibernate自动创建表--配置文件
- hibernate使用配置文件创建联合主键往MySQL数据库插入数据
- ASP.NET通过配置Web.config文件提高手动绑定数据库效率的一个简单方法,不用每次手动连接数据库地址,或者数据库地址变更时只改一处即可。
- 通过修改配置文件,手动创建一个Linux可登陆账户
- hibernate工具类更具配置文件创建table,和创建currentsession..
- Hibernate映射文件简单配置
- 学习Hibernate源码——配置文件解析,SessionFactory创建
- Tomcat +Vim 手动创建最简单的JSP 文件
- 通过hibernate配置文件创建数据库表
- 最简单的SSH(Struts+Spring+Hibernate)[二]配置文件
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- 利用MyEclipse创建hibernate视图的hbm.xml文件及其手动设置事项
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- Hibernate 3学习笔记 - 简单的Hibernate配置文件
- 最简单的SSH(Struts+Spring+Hibernate)[三]配置文件和测试页面
- hibernate中根据model的配置文件创建数据库
- 以Java属性文件的格式创建Hibernate的配置文件和DTD特殊符号作用
- 添加JBoss插件中的hibernate tools后怎么创建hibernate配置文件和对数据库的表进行反转映射