`

Hibernate搭建成功!(源码)

阅读更多
昨天晚上搭建了我的第一个Hibernate框架。感觉挺爽的!

虽然两天还不会连接数据库,昨就把那么帅的东西搞出来了。

感觉很爽,Java真的很好,很强大。我学习Java才一个月左右,我还有许多需要学习的。

这次发的这个框架是Hibernate连接mysql。(所有代码均实际运行)

搭建环境:MyEclipse

下面是操作步骤:

1.在mysql中建立一个名为person的表。
表中数据:id varchar(32) no null primary key;
              name varchar(30) no null;
              password varchar(30) no null;
              sex varchar(2);
              email varchar(30);

2.打开MyEclipse,从菜单中选择窗口,选择首选项,选择数据库浏览器。

3.配置数据库驱动(mysql-connector-java-5.1.6-bin.jar)。

4.新建一个webproject,命名为HMWebproject,加入Add Hibernate Capabilities...,选择Hibernate3,Next---Finish

5. 选菜单的窗口,选择显示视图,选择其它,选MyEclipse中的DB Browser。点确定。从新窗口中选择New,连接数据库MySQL。

6.把数据库驱动放入此路径(例)D:\java\work\HMWebproject\WebRoot\WEB-INF\lib中,刷新列表,可以显示出新加入的包。

7.src下新建一个类(POJO类):包名为org.lxh.hibernate.demo,命名为Person,写入代码,最终显示如下:

package org.lxh.hibernate.demo;
//POJO类
public class Person {
         private String id;
         private String name;
         private String password;
         private String sex;
         private String email;
  public String getId() {
   return id;
  }
  public void setId(String id) {
   this.id = id;
  }
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public String getPassword() {
   return password;
  }
  public void setPassword(String password) {
   this.password = password;
  }
  public String getSex() {
   return sex;
  }
  public void setSex(String sex) {
   this.sex = sex;
  }
  public String getEmail() {
   return email;
  }
  public void setEmail(String email) {
   this.email = email;
  }
        
}

8.建立映射文件:点表person右键,选择Create Hibernate Mapping,创建在包org.lxh.hibernate.demo下,主键生成方式:assigned,完成。

9.修改映射文件:代码最终为--->

<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="org.lxh.hibernate.demo.Person" table="person" catalog="scutcs">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="20" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="20" not-null="true" />
        </property>
        <property name="sex" type="java.lang.String">
            <column name="sex" length="2" />
        </property>
        <property name="email" type="java.lang.String">
            <column name="email" length="30" />
        </property>
    </class>
</hibernate-mapping>

9.在src下新建一个类:命名为PersonOperate,最终代码为----->

package org.lxh.hibernate.demo;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

 

/*
 * 具体操作Hibernate的类
 * 增删改,按ID查询,模糊查询,查询全部
 */
public class PersonOperate {
  //Hibernate中所有操作都通过Session完成
  //此Session不同于JSP的Session
 private Session session=null;
 //构造方法中实现实例化Session对象
 public PersonOperate()
 {
 Configuration config=new Configuration().configure();
 //从配置中取得SessionFactory
 SessionFactory factory=config.buildSessionFactory();
 //SessionFactroy中取出一个Session
 this.session=factory.openSession();
 }
 //所有的操作都是通过Session进行的
 //向数据库中增加数据
 public void insert(Person p)
 {
   //开始事务
  
   Transaction tran =this.session.beginTransaction();
  
   //执行语句
   this.session.save(p);
  
   //提交事务
   tran.commit();
   //关闭Session
   this.session.close();
 }
 //修改
 public void update(Person p)
 {
  //开始事务
  Transaction tran =this.session.beginTransaction();
  //执行语句
  this.session.update(p);
  //提交事务
  tran.commit();
  this.session.close();
 }
 //按ID查询:推荐使用HQL
 public Person queryById(String id)
 {
  Person p=null;
  //使用Hibernate查询语言
  String hql="FROM Person as p WHERE p.id=?";
  //通过Query接口查询
  Query q=this.session.createQuery(hql);
  q.setString(0, id);
  List l=q.list();
  java.util.Iterator iter= l.iterator();
  if(iter.hasNext())
  {
   
  p=(Person)iter.next();
  }
  return p;
 }
    //删除数据
 //Hibernate2,Hibernate3通用的删除
 //使用此方法删除数据之前,必须先查找到数据对象
 public void delete(Person p)
 {
  Transaction tran=this.session.beginTransaction();
  //执行语句
  this.session.delete(p);
  //提交事务
  tran.commit();
  this.session.close();
  
 }
       //在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令
      public void delete(String id)
      {
       String hql="DELETE Person WHERE id=?";
       Query q=this.session.createQuery(hql);
       //把参数设置
       q.setString(0, id);
       //执行更新语句
       q.executeUpdate();
       //进行事务处理
       this.session.beginTransaction().commit();
       this.session.close();
      }
        //查询全部数据,写HQL
      public List queryAll()
      {
       List l=null;
       String hql="FROM Person as p";
       Query q =this.session.createQuery(hql);
       l=q.list();
  return l;
      
      }
      //模糊查询
      public List queryByLike(String cond)
      {
       List l=null;
       String hql="FROM Person as p WHERE p.name like?";
       Query q =this.session.createQuery(hql);
       q.setString(0, "%"+cond+"%");
       l=q.list();
  return l;
      
      }
}


10.在src下新建插入类:命名为:TestPU
              新建更新类:命名为:TestPO
              新建删除类:命名为:TestPD
              新建HQL删除类:命名为:TestPD2
              新建按ID查询类:命名为:TestPI
              新建查询全部类:命名为:TestPK
              新建模糊查询类:命名为:TestPM
最终各类代码为----->

TestPU.java

package org.lxh.hibernate.demo;

public class TestPU {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  Person p=new Person();
  p.setId("SNNN");
  p.setName("shiyangxt");
  p.setPassword("shiyang");
  p.setSex("女");
  p.setEmail("shiyangxt@126.com");
  PersonOperate po=new PersonOperate();
  po.insert(p);
 }
}

      

TestPO.java

package org.lxh.hibernate.demo;

public class TestPO {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  Person p=new Person();
  p.setId("NNNN");
  p.setName("shiyangxt");
  p.setPassword("shiyang");
  p.setSex("女");
  p.setEmail("shiyangxt@126.com");
  PersonOperate po=new PersonOperate();
  po.update(p);

 }
   
}



TestPD.java

package org.lxh.hibernate.demo;

public class TestPD {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
      PersonOperate po=new PersonOperate();
      Person p=po.queryById("NNNN");
      po.delete(p);
 }

}



TestPD2.java

package org.lxh.hibernate.demo;

public class TestPD2 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  PersonOperate po=new PersonOperate();
  po.delete("SNNN");
       

 }

}



TestPI.java

package org.lxh.hibernate.demo;

public class TestPI {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  PersonOperate po=new PersonOperate();
  Person p=po.queryById("NNNN");
        System.out.println(p.getName());

 }

}

TestPK.java

package org.lxh.hibernate.demo;

import java.util.Iterator;
import java.util.List;


public class TestPK {

 

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  PersonOperate po=new PersonOperate();
  List l=po.queryAll();
  Iterator iter= (Iterator) l.iterator();
  while(iter.hasNext())
  { 
   Person p = (Person)iter.next();
   System.out.println(p.getName());
  }


 }

}


TestPM.java

package org.lxh.hibernate.demo;

import java.util.Iterator;
import java.util.List;

public class TestPM {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  //生成POJO类实例化对象
  PersonOperate po=new PersonOperate();
  List l=po.queryByLike("s");
  Iterator iter= (Iterator) l.iterator();
  while(iter.hasNext())
  { 
   Person p = (Person)iter.next();
   System.out.println(p.getName());
  }

 }

}

11.搭建完成!!!

施杨出品!!!














分享到:
评论

相关推荐

    配套视频的Hibernate4环境搭建源码

    跟博客上视频配套的源码,hibernate 4.19

    Struts2+Spring+Hibernate搭建全解!

    在压缩包文件`news-SSH2`中,可能包含了一些示例项目的源码,包括Struts2的配置文件、Action类、Spring的配置文件、Service和DAO实现,以及Hibernate的实体类和映射文件。通过学习和分析这些代码,开发者可以更深入...

    struts2+spring4+hibernate4工程搭建源码

    这个"struts2+spring4+hibernate4工程搭建源码"提供了使用这三个框架集成开发的示例代码,对于学习和理解它们的集成应用具有重要的参考价值。 Struts2是Apache基金会的一个开源项目,作为MVC框架,它主要用于处理...

    Hibernate5.2.4环境搭建源码

    **Hibernate 5.2.4 环境搭建与源码解析** Hibernate 是一个流行的 Java 对象关系映射(ORM)框架,它极大地简化了数据库操作。在本教程中,我们将详细探讨如何搭建 Hibernate 5.2.4 的开发环境,并理解其源码。 ...

    Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码

    在"Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码"这个项目中,开发者可能已经包含了这些框架的配置文件,例如Spring的applicationContext.xml、SpringMVC的servlet-context.xml、Hibernate的hibernate....

    Maven搭建SpringMVC+Hibernate项目源码

    Maven搭建SpringMVC+Hibernate项目源码,包括Hibernate二级缓存Ehcache的搭建等等,博文地址:http://blog.csdn.net/fengshizty/article/details/43635305

    dwr2+struts2+spring2.5+hibernate3实例!

    - 源码:展示了各个框架的配置文件(如struts.xml、spring-context.xml、dwr.xml)、业务逻辑层(服务接口和服务实现)、数据访问对象(DAOs)以及相关的实体类。 - SQL:可能包含了数据库的创建脚本和初始数据的...

    springMVC+hibernate框架搭建源码

    SpringMVC和Hibernate是两种非常重要的Java开发框架,它们在构建Web应用程序时起着核心作用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化...

    hibernate搭建环境超详细解

    ### Hibernate项目环境搭建详解 #### 一、理解Hibernate与项目环境搭建的重要性 Hibernate是一个开源的...通过以上步骤,你可以成功搭建一个基本的Hibernate项目环境,为进一步学习和应用Hibernate打下坚实的基础。

    hibernate5jar包以及源码

    1. **依赖集成**:在Java项目中,引入`hibernate5.jar`作为依赖,可以快速搭建ORM环境。 2. **配置文件**:`hibernate.cfg.xml`是Hibernate的主要配置文件,涉及数据库连接、方言选择、缓存设置等。 3. **实体类和...

    Hibernate基础学习源码

    本资源“Hibernate基础学习源码”提供了五个不同阶段的学习示例,分别命名为Hibernate_01至Hibernate_04以及Hibernate_M2M,涵盖了Hibernate的基本概念、配置、实体映射、CRUD操作以及多对多关系的处理。 1. **...

    第一次搭建hibernate环境

    总之,搭建Hibernate环境需要理解其基本概念,熟悉配置文件的编写,以及如何通过源码操作数据库。随着对Hibernate的深入学习,你可以利用它的高级特性,如缓存、查询语言(HQL)等,提高开发效率和代码质量。

    hibernate5.2+SpringMVC4.3框架搭建源码

    本教程将深入探讨如何使用Hibernate 5.2和Spring MVC 4.3这两个流行的技术框架进行集成搭建,以便创建一个强大的Web应用程序。 Hibernate是Java领域的一个对象关系映射(ORM)框架,它允许开发者将数据库操作与业务...

    SSH2框架搭建实例源码

    这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户管理功能的实现。下面我们将详细探讨这些技术及其在项目中的应用。 **Spring框架**: Spring...

    Hibernate入门-搭建框架实现基本的增删改查(源码)

    通过以上步骤,我们可以成功地搭建一个使用Hibernate的Java应用,实现基本的增删改查功能。在实际开发中,还需要根据项目需求进行更复杂的配置和优化,比如使用查询缓存、配置二级缓存、优化HQL等,以便更好地利用...

    hibernate3基础教程中文版及源码

    2. **环境配置**:包括Hibernate的下载、环境搭建,如JDBC驱动的添加,Hibernate配置文件(hibernate.cfg.xml)的创建和配置,以及如何设置数据源和连接池。 3. **实体类与映射文件**:学习如何创建Java实体类,并...

    Spring boot hibernate ehcache maven 整合源码

    总的来说,这个项目展示了如何使用Spring Boot搭建一个基于Hibernate的数据访问层,利用Ehcache实现缓存功能,同时借助Maven进行项目管理和构建。开发者可以参考这个源码,学习如何在自己的项目中整合这些技术,提升...

    Spring+SpringMvc+Hibernate搭建一个小项目

    在IT行业中,SSH(Spring、SpringMVC、Hibernate)是一个常见的技术栈,尤其适用于构建企业级的Java Web应用。这个小项目旨在帮助初学者理解如何将这三个框架整合在一起,搭建一个完整的工作流程。 首先,Spring是...

    基于struts2、spring、hibernate框架搭建的人力资源管理系统源码+项目说明(包含人事管理等).zip

    基于struts2、spring、hibernate框架搭建的人力资源管理系统源码+项目说明(包含模块:人事管理、招聘管理、机构管理、考勤管理、培训管理、个人办公、系统管理).zip 基于struts2、spring、hibernate框架搭建的人力...

    Hibernate+Transaction+myeclipse6+事例+工程源码.rar

    这使得开发者可以快速搭建基于Hibernate的项目,同时,MyEclipse6也集成了Tomcat服务器,便于进行本地调试和测试。 具体到这个"Hibernate+Transaction+myeclipse6"的工程源码,我们可以看到以下几个关键部分: 1. ...

Global site tag (gtag.js) - Google Analytics