[JavaWeb基础] 005.Hibernate的配置和简单使用
1.Hibernate简介
Hibernate是一个基于Java的开源的持久化中间件,对JDBC做了轻量的封装。采用ORM映射机制,负责实现Java对象和关系数据库之间的映射,把sql语句传给数据库,并且把数据库返回的结果封装成对象。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API.以对象的形式操作数据,提高开发效率,不用关心数据库种类(换数据库只要修改配值文件)。
2.在MyEclipse上创建一个DB broswer
这个东西你可以从Window -> Show View ->Others中查找到。然后右键创建一个新的连接对象.

测试通过就可以了。
3.通过MyEclipse快速创建Hibernate
选中你要添加Hibernate的项目,右键->MyEclipse->Add Hibernate Capatilities

下一步

下一步

下一步

填写完按finish就完成了,然后看看你的项目多了哪些文件
4.上面的配置完后,我们就要开始配置数据库的映射关系,有了DB browser就容易多了
选中刚才配置的DB browser,然后选中要生成的Table

选择完成后会出现

然后就可以直接点击Finish结束了,那么我们就完成了Hibernate的配置了。
5.配置完成了,我们来看看如何使用它。
package com.babybus.sdteam.dao; import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session; import com.babybus.sdteam.hibernate.HibernateSessionFactory;
import com.babybus.sdteam.vo.Student; public class StudentHibernateDao { private Session session = null; public StudentHibernateDao()
{
// 一定不能直接用getSession不然会报重复错误
session = HibernateSessionFactory.getSessionFactory().openSession();
} /**
* 插入数据
* @param student
* @throws SQLException
*/
public void insertStudent(Student student) throws SQLException
{
// 开启事务
session.beginTransaction();
session.save(student);
// 提交事务
session.getTransaction().commit();
} /**
* 删除数据
* @param student
* @throws SQLException
*/
public void deleteStudent(int id) throws SQLException
{
// 开启事务
session.beginTransaction();
Student student = (Student)session.get(Student.class, id);
session.delete(student);
// 提交事务
session.getTransaction().commit();
} /**
* 修改数据
* @param student
* @throws SQLException
*/
public void updateStudent(Student student) throws SQLException
{
// 开启事务
session.beginTransaction();
session.update(student);
// 提交事务
session.getTransaction().commit();
} /**
* 查询数据
* @param student
* @throws SQLException
*/
public List<Student> queryStudent(Student student) throws SQLException
{
List<Student> resultList = new ArrayList<Student>();
// hql查询,简单易懂
String hql="from Student as Student where 1=1 and ";//使用命名参数,推荐使用,易读。
// 条件不为空
if(student != null)
{
// 学生名称
if(student.getStudentname() != null && !student.getStudentname().trim().equals("") )
{
hql += " studentname = '" + student.getStudentname() + "' and ";
}
// ID
if(student.getId() != 0 )
{
hql += " id = " + student.getId() + " and ";
}
// 年龄
if(student.getAge() != 0 )
{
hql += " age = " + student.getAge() + " and ";
}
// 年级
if(student.getClassname() != null && !student.getClassname().trim().equals("") )
{
hql += " classname = '" + student.getClassname() + "' and ";
}
}
hql = hql.substring(0, hql.length() - 5);
Query query=session.createQuery(hql);
resultList=query.list();
return resultList;
} public void closeSession()
{
session.close();
}
}
6.例子编写过程遇到的问题
①.首先要注意的是*.hbm.xml的DTD头。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
如果报找不到xml,可以试试改下头
②.如果报错找不到类,可能和Tomcat下面的jar包冲突了,找到并删除即可
③.如果报映射文件重复,那么获取session的方式可能有问题,参考我上面代码注释
以上我们就学会了简单的Hibernate,所谓师傅带进门,修行在个人,大家要进一步学习,可以去网上看更深入的教程
结语
- 受益,掌握了Hibernate的初级应用

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4606174.html
[JavaWeb基础] 005.Hibernate的配置和简单使用的更多相关文章
- [JavaWeb基础] 007.Struts2的配置和简单使用
1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...
- [JavaWeb基础] 006.Struts1的配置和简单使用
1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...
- Hibernate的配置跟简单创建一个表并插入一条数据
首先官网下载一个hibernate的架包,由于时间关系,博主已经分享到了百度网盘:https://pan.baidu.com/s/1Mw0Og3EKnouf84Njz9UicQ,提取码lens Hib ...
- [JavaWeb基础] 008.Spring初步配置
框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...
- hibernate基本配置与简单增删改查
ORM(Object Relation Mapping)是对象关系映射,是一个思想,它的作用是在关系数据库与对象之间做一个自动映射,将数据库中的表格映射到一个类,也就是持久化类,数据表中每行映射为对象 ...
- [JavaWeb基础] 016.Struts2 国际化配置
如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...
- [JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改
上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询.那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例. 首先我们创建一个专门用于学生管 ...
- Android零基础入门第73节:Activity初入门,创建和配置如此简单
Activity是Android应用的重要组成单元之一,也是Android应用最常见的组件之一.前面看到的示例通常都只包含一个Activity或一个AppCompatActivity,但在实际应用中这 ...
- JavaWeb基础知识总结
JavaWeb基础知识总结. 1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...
随机推荐
- 快速幂 递归&&非递归 模板
一.递归版快速幂 inline int qpow(int x,int y,int p){ if(y==0) return 1; int z=qpow(x,y>>1,p); z=1ll*z* ...
- Python网络数据采集- 创建爬虫
1. 初见网络爬虫 1.1 网络连接 输出某个网页的全部 HTML 代码. urllib 是 Python 的标准库(就是说你不用额外安装就可以运行这个例子),包含了从网络请求数据,处理 cookie ...
- D. Ehab the Xorcist(纯构造方法)
\(如果觉得下面难以理解,可以去这里看一种较为简单的解法\):saf \(这个题嘛,首先要明确异或的性质:相同为0,不同为1.\) \(举个例子,我们来构造u=15和v=127的情况\) \(注意到, ...
- Git 获取远程仓库指定分支内容
1. 在本地一个空的文件夹中 git init (生成本地仓库) 2. 在刚刚的文件夹中随便建立一个文件 ,git add . (为了生成分支)(提交到暂存区) 3. git commit -m'1 ...
- 戴尔服务器ipmi报错
戴尔服务器ipmi配置完成,用浏览器打开报错 查看器已终止,网络已中断 原因:这个问题是java报错,用火狐打开报错 解决方法: 用IE打开就没问题,IE要用较高版本的,楼主的是win10-IE11
- python执行脚本报错: Non-ASCII character '\xe4' in file yang.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
这是因为我们在写python程序的时候,无论在注释里面出现中文,还是在代码里面出现中文,也就是说只要这个python程序里面有中文,我们就不能直接用python2来进行执行,如果安装是python3可 ...
- python地图投影转换
一.投影包osr与proj4的使用 1.osr投影转换示例 from osgeo import osr,ogr#定义投影#wgs84source=osr.SpatialReference()sourc ...
- Day_08【面向对象】扩展案例1_测试项目经理类和程序员类
分析以下需求,并用代码实现: 1.定义项目经理类 属性: 姓名 工号 工资 奖金 行为: 工作work 2.定义程序员类 属性: 姓名 工号 工资 行为: 工作work 要求: 向上抽取一个父类,让这 ...
- [csu/coj 1080]划分树求区间前k大数和
题意:从某个区间内最多选择k个数,使得和最大 思路:首先题目给定的数有负数,如果区间前k大出现负数,那么负数不选和更大,于是对于所有最优选择,负数不会出现,所以用0取代负数,问题便转化为区间的前k大数 ...
- YOLOV4在linux下训练自己数据集(亲测成功)
最近推出了yolo-v4我也准备试着跑跑实验看看效果,看看大神的最新操作 这里不做打标签工作和配置cuda工作,需要的可以分别百度搜索 VOC格式数据集制作,cuda和cudnn配置 我们直接利用 ...