Hibernate的使用
1 创建一个Java项目,在项目中新建一个lib,将需要的Hibernate包和MySQL包导入,并Build Path
2 在src下添加Hibernate.cfg.xml在此文件中对Hibernate和MySQL进行配置,此处的配置作用,类似于JDBC的共用
我理解为此处用于与数据库连接
<hibernate-configuration>
<session-factory>
//确定方言
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
//Driver
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Assume test is the database name -->
//url
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/test
</property>
//root
<property name="hibernate.connection.username">
root
</property>
//password
<property name="hibernate.connection.password">
123456
</property>
//配置Mapping
<mapping resource="com/whl/bean/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3 在Bean下建立bean以及Bean.hbm.xml。在此xml中属性名等与数据库对应,此xml也叫映射文件的配置
在cfg.xml中进行mapping配置
<hibernate-mapping>
<class name="com.phone1000.je1702.bean.User">
<id name="uid" type="java.lang.Integer">
<generator class="increment"/>
</id>
<property name="username" not-null="true" length="15" column="username"/>
<property name="password" not-null="true" length="15" column="`password`"/>
</class>
</hibernate-mapping>
4 实现数据库的crub操作
注:因为Hibernate是一个封装了JDBC的ORM框架,所以在开发中,其主要用于DAO、Server部分
①在dao下新建一个接口,写增删改查的方法
②new 一个Class继承上面的接口
//1 创建一个configuraction对象,在configure()方法中会调用带参的构造器
Configuration cfg=new Configuration.configure();
//2 通过Configuration创建SessionFactory
SessionFactory sf=cfg.bulidSessionFactory();
//3 使用SessionFactory对象创建一个Session对象
Session s=sf.openSession();
//4 通过session对象开启一个事物
Transaction tx=s.beginTransaction();
try{
//5 实现数据的CRUD操作
s.save(user);
//6 commit或者rollback 事物
tx.commit();
return ;
}catch(){
//6 commit或者rollback 事物
tx.rollback();
}
7 关闭session对象
注:在查询时,不改变表中数据,则不需要开启事物
直接用session.createQuery("from user")
③ 测试增删改查(Junit)
Hibernate的使用的更多相关文章
- hibernate多对多关联映射
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用
问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...
- hibernate多对一双向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- Hibernate中事务的隔离级别设置
Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下
- Hibernate中事务声明
Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...
- spring applicationContext.xml和hibernate.cfg.xml设置
applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...
- [原创]关于Hibernate中的级联操作以及懒加载
Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...
- hibernate的基本xml文件配置
需要导入基本的包hibernate下的bin下的required和同bin下optional里的c3p0包下的所有jar文件,当然要导入mysql的驱动包了.下面需要注意的是hibernate的版本就 ...
- Maven搭建SpringMVC+Hibernate项目详解 【转】
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这 ...
- 1.Hibernate简介
1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发; b.大大减少代码量; c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...
随机推荐
- Telegram学习解析系列(一):认识一下Telegram的源码
前言: Telegram不知道有多少同行听过这玩意,或者在看它的源码.我是出于工作原因才接触到这东西,看的真是的......变方了!一个月估计刚刚找到门,还没进去多深,把自己的心得和对源码的认识以及我 ...
- linux下归档、解压缩工具:tar命令
tar是一个类似于windows下的解压缩工具,可以将一大堆文件或目录打包成一个文件,还可以通过特定选项使用压缩工具进行解压缩. 语法: tar (选项) (参数) 常用选项: -c:创建打包文件. ...
- zoj 1013 Great Equipment DP
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=13 很经典的一个DP的题目 定义dp[i][num1][num2]表示 ...
- centOS的命令行与图形页面之间的转换
.命令行 -> 图形界面 注意:在安装CentOS7的时候要添加GUI图形界面,否则没有效果. # startx
- AngularJS的this详解
[this详解] 1.谁最终调用函数,this指向谁. ① this指向的,永远只可能是对象!!!!!! ② thi ...
- tomcat流程原理解析
tomcat的启动是通过Bootstrap类的main方法(tomcat6开始也可以直接通过Catlina的main启动) Bootstrap的启动 Bootstrap的main方法先new了一个自己 ...
- React-Router 4 的新玩意儿
上一个项目用的还是 2.6.1,转眼的功夫 4.0 都发布了,API 变化实在有点大,2.X那套东西不顶用了,老老实实重新看一遍文档,其中有几点需要注意的,拿出来说一说. 本文只讨论针对浏览器的应用, ...
- Linux 下按时间顺序批量删除文件
ls -lrt| awk '{print $9}'| head -n 10 | xargs rm -rf 1.文件按时间排序: 2.获取文件名字: 3.取前10个文件 4.删除文件
- ACCESS数据库增强器需求及介绍
目前版本:ver1.0.0.2 现已支持cs文件浏览,高亮显示 针对如下图所示的access数据库,我想导出access数据库的所有或者部分表的表结构,还想对表进行封装,封装如下所示. using S ...
- 局域网内部署 Docker Registry
在局域网内部署 Docker Registry 可以极大的提升平时 pull.push 镜像的速度,从而缩短自动化操作的过程.同时也可以缓解带宽不足的问题,真是一举多得.本文将从创建单机的 Docke ...