[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

时间: 2024-12-26 18:28:08

[JavaWeb基础] 005.Hibernate的配置和简单使用的相关文章

[JavaWeb基础] 007.Struts2的配置和简单使用

1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag).但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑..目前为止,有Struts1和Struts2

[JavaWeb基础] 006.Struts的配置和简单使用

1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag).但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑..目前为止,有Struts1和Struts2

Hibernate的配置与简单使用

一.概念  Hibernate是一个开源的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以抛弃在程序中编写SQL语句,随心所欲的使用对象编程思维来操纵数据库. 二.准备工作 在Eclipse中安装HibernateTools插件:Help -> Install New Software 来进行安装.New -> Other打开的对话框中如果有Hibernate选项则表明安装成功. 三.创建工程 1.New 一个 Java Project 2.为Java

[JavaWeb基础] 008.Spring初步配置

框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而

hibernate基本配置与简单增删改查

ORM(Object Relation Mapping)是对象关系映射,是一个思想,它的作用是在关系数据库与对象之间做一个自动映射,将数据库中的表格映射到一个类,也就是持久化类,数据表中每行映射为对象,行中的各个字段映射为对象的属性,这样可以在开发中使用面向对象的思想来操作数据库. 其中hibernate是ORM思想实现的一个持久层框架. 其中有三个主要的内容:1.持久化类(*.java) 2.映射文件(*.hbm.xml) 3.配置文件(*.cfg.xml) 使用Hibernate框架搭建一个

[JavaWeb基础] 016.Struts2 国际化配置

如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文,他估计就傻了,好比我们看英文的,或者其他语言的网站时候也不舒服.那么,下面我们就来介绍下使用struts2如何来处理国际化. 1.首先要在strust.xml中在<struts>标签下配置<constant name="struts.custom.i18n.resources&qu

[JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改

上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询.那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例. 首先我们创建一个专门用于学生管理的ManageServlet. 接着我们需要一个展现数据的页面,也就是 UserList.jsp <%@page import="com.babybus.sdteam.vo.Student"%> <%@ page language="java" im

JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用

Hibernate框架概述 什么是Hibernate? 框架:软件的半成品,完成部分代码的功能. Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思想来操作数据库.Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序中使用,也可以在Servlet/JSP的web应用程序中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成

web基础之hibernate(一篇)

hibernate的一些基本的认识 1.       hibenate是一个框架(framework) 2.       hibernate是一个orm框架 3.       orm(object relation mapping)对象关系映射框架 4.       hibernate处于我们项目的持久层位置(正因为如此,所以有人又把hibernate称为持久层框架) 5.       hibernate实际上就是对jdbc进行了轻量级的分装         把对象持久化:  把对象的信息保存到