hibernate(1) —— 入门
hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架。
只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表字段。 这样就不用管数据库的相关操作了。
一:映射
下面介绍使用hibernate框架实现简单的单表和实体间的映射。
如学生实体类Student映射成数据库中的T_student表
首先需要我们编写实体类,提供属性的set get方法
实体类和数据库表的映射全靠映射文件,也就是xml配置文件,配置文件是和实体类对应的,一个实体类对应一个映射配置文件。配置文件内容解析如下:
二:使用
1,环境配置
配置Hibernate框架的环境,需要拷贝框架的jar包到我们程序中,常用的jar包一般有14个,如下图:
2,创建javabean对象(以User为例)
对象的属性一般与对应表中的字段一致,需要提供每个属性的set、get方法,用工具生成就行了,不用工具生成的话,一定要注意命名规范,属性的名称首字母大写后在前面加set或get字段。
3,配置hibernate.cfg.xml文件
配置一个关联与特定数据库全局的工厂<SessionFactory>如果要使用多个数据库,就多配置一个<SessionFactory>标签,标签中制定连接数据库的信息。
我们需要把配置文件存在在项目的src下面,Hibernate启动时会自动到classpath根目录下面查找名为hibernate.cfg.xml文件,所以配置文件的名称不要更改。

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEhibernate-configuration PUBLIC
"-//Hibernate/HibernateConfiguration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<!--配置连接数据库信息 -->
<propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/egov</property>
<propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="hibernate.connection.username">egov</property>
<propertyname="hibernate.connection.password">egov</property> <propertyname="show_sql">true</property>
<propertyname="hibernate.format_sql">true</property>
<propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--实体类的路径-->
<mappingresource="com/hibernate/pojo/User.hbm.xml"/> </session-factory>
</hibernate-configuration>
4,配置映射文件
映射文件是和javabean对象对应的,一般以对象的名称加.xml文件命名,映射文件的作用就是要告诉Hibernate应该访问数据库的哪个表以及表中的哪个对象。
在hibernate-mapping标签(tag)之间,含有一个class元素。所有的持久化实体类(再次声明,或许接下来会有依赖类,就是那些次要的实体)都需要一个这样的映射,来把类对象映射到SQL数据库里的表。
<hibernate-mapping>
<class name="beanname" table="tablename"/>
</hibernate-mapping>
配置好映射文件后需要在hibernate.cfg.xml文件中配置<mapping resource>标签,指向刚定义的映射文件。
实例:
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEhibernate-mapping PUBLIC
"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernate.pojo.User" table="t_user"lazy="true">
<!--id标签用来映射主键字段-->
<id name="username" column="username"length="20">
<generatorclass="assigned"/>
</id> <propertyname="userpswd" column="userpswd" length="20"not-null="true"/> </class>
</hibernate-mapping>
5,编写dao层

public class UserDao{
public void insert(User user){
//加载配置文件:classpath:hibernate.cfg.xml
Configurationconfig = new Configuration().configure();
//创建连接工厂
SessionFactorysf = config.buildSessionFactory();
//会话对象,表示与数据库的连接会话过程
Sessionsession = null;
Transactiontx = null ;
try{
session= sf.openSession();
//开启事务
tx= session.beginTransaction();
session.save(user);//调用sava方法
//提交事务
tx.commit();
}catch(Exceptione){
e.printStackTrace();
tx.rollback();
}finally{
if(session!=null){
session.close();
}
}
}
}
6,编写测试类
以上四步完成后就可以进行测试了,看配置的信息能否成功插入一条数据。

public static void main(String args[]){
Useruser = new User();
user.setUsercode("zhangsan");
user.setUserpswd("123");
user.setOrgtype("1");
user.setRegdate("2014-03-0711:56:00");
user.setUsername("张三");
UserDaodao = new UserDao();
dao.insert(user);
}
为了测试么,我们直接new的dao层对象,在实际项目中hibernate框架和spring框架和struts2框架结用,创建对象和组合对象的关系交给spring去完成。这样层与层之间就不会耦合了。
hibernate(1) —— 入门的更多相关文章
- Hibernate从入门到精通(十一)多对多双向关联映射
上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一 ...
- Hibernate从入门到精通(十)多对多单向关联映射
上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...
- Hibernate从入门到精通(九)一对多双向关联映射
上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映射,即在一的 ...
- Hibernate从入门到精通(八)一对多单向关联映射
上次的博文Hibernate从入门到精通(七)多对一单向关联映射我们主要讲解了一下多对一单向关联映射,这次我们继续讲解一下一对多单向映射. 一对多单向关联映射 在讲解一对多单向关联之前,按照我们的惯例 ...
- Hibernate从入门到精通(七)多对一单向关联映射
上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...
- Hibernate从入门到精通(六)一对一双向关联映射
在上次的博文Hibernate从入门到精通(五)一对一单向关联映射中我们讲解了一下一对一单向关联映射,这次我们继续讲解一下与之对应的一对一双向关联映射. 一对一双向关联 与一对一单向关联映射所不同的的 ...
- Hibernate从入门到精通(五)一对一单向关联映射
上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...
- Hibernate从入门到精通(四)基本映射
映射的概念 在上次的博文Hibernate从入门到精通(三)Hibernate配置文件我们已经讲解了一下Hibernate中的两种配置文件,其中提到了两种配置文件的主要区别就是XML可以配置映射.这里 ...
- Hibernate从入门到精通(三)Hibernate配置文件
在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...
- Hibernate从入门到精通(二)Hibernate实例演示
上篇Hibernate从入门到精通(一)JDBC简介,我们主要对JDBC进行了简单介绍和使用说明,这次我们做一个Hibernate简单实例,通过这个实例对比Hibernate和JDBC,了解Hiber ...
随机推荐
- jquery-懒加载插件
在Web应用程序中,系统的瓶颈常在于系统的响应速度.如果系统响应速度过慢,用户就会出现埋怨情绪, 系统的价值也因此会大打折扣.因此,提高系统响应速度,是非常重要的. 从此可知,再好的网站,再炫的网站, ...
- 元素绝对定位以后设置了高宽,a标签不能点击的原因总结
元素绝对定位以后设置了高宽,a标签不能点击的原因: 1.元素内并无内容 2.背景是透明的,无任何背景图或者颜色 解决方法: 1.如果不是绝对定位元素的,可以用相对定位 2.给元素加透明的背景图 3.I ...
- Lightmaping
一.基本知识点 1.Baked Only:不会传入shader,只有烘焙时才有用,也就是_LightColor0等这种变量不会表示一个Baked Only Light(前提是场景有lightmap,如 ...
- ScrollView 嵌套ListView、RecyclerView(持续更新)
ListView: 只要重写ListView或GridView的onMeasure()方法即可: @Override protected void onMeasure(int widthMeasure ...
- 生成Kindle可读的mobi和PDF电子书
购买kindle之后,自然欣喜万分,不来自于工具本身,而来自于发现自己能够静下心来阅读长篇和复杂的文字了,可喜可贺.更重要的是,kindle减轻了我眼睛的莫大的压力.但马上就出现几个问题: 不是所有的 ...
- 【记录】EF Code First 实体关联,如何添加、修改实体?
在使用 EF Code First 的时候,我们经常会对项目中的 Entry 进行一对多.多对多的映射配置,这时候就会产生主实体和子实体的概念,我们在添加.修改他们的时候,有时候会产生一些问题,比如添 ...
- ubunt14.04 安装JDK
1.到 Sun 的官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择 ...
- hibernate笔记--基于外键的单(双)向的一对一映射关系
假设我们有两张表,人员信息表Person,和身份信息表IdCard,我们知道每个人只有一个身份证号,所以这里的Person和IdCard表是一一对应的,也就是一对一的映射关系,基于外键的单向一对一映射 ...
- ACM-东北大学程序设计竞赛-网络赛(2016.04.16)
Problem: A Time limit: 1s Mem limit: 64 MB AC/Submission: 0/0 Discuss Back Ranklist Stat ...
- Cesium应用篇:2影像服务(下)
文章中相关范例下载路径:https://yunpan.cn/cByQqkANWN7Pu 访问密码 823d 上篇主要介绍了Cesium自带的影像Provider ,在本篇中,我们主要涉及到如何扩展这些 ...