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