`
守望者
  • 浏览: 55497 次
  • 来自: ...
社区版块
存档分类
最新评论

菜鸟学习hibernate笔记<一>

阅读更多

初学Hiernate时的记录,收藏起来做个纪念,呵呵!!!

一、基本的hql操作:

Mysql数据库数据:

CREATE TABLE person
(
 id varchar(32) not null primary key ,
 name varchar(20) not null ,
 password varchar(20) not null ,
 sex varchar(2) ,
 email varchar(30)
) ;

java 代码

 

 

  1. package org.lxh.hibernate.demo01;   
  2. // POJO类   
  3. public class Person {   
  4.     // 写入若干属性   
  5.     private String id ;   
  6.     private String name ;   
  7.     private String password ;   
  8.     private String sex ;   
  9.     private String email ;   
  10.     public String getEmail() {   
  11.         return email;   
  12.     }   
  13.     public void setEmail(String email) {   
  14.         this.email = email;   
  15.     }   
  16.     public String getId() {   
  17.         return id;   
  18.     }   
  19.     public void setId(String id) {   
  20.         this.id = id;   
  21.     }   
  22.     public String getName() {   
  23.         return name;   
  24.     }   
  25.     public void setName(String name) {   
  26.         this.name = name;   
  27.     }   
  28.     public String getPassword() {   
  29.         return password;   
  30.     }   
  31.     public void setPassword(String password) {   
  32.         this.password = password;   
  33.     }   
  34.     public String getSex() {   
  35.         return sex;   
  36.     }   
  37.     public void setSex(String sex) {   
  38.         this.sex = sex;   
  39.     }   
  40. }   

 

java 代码
  1. package org.lxh.hibernate.demo01;   
  2.   
  3. import java.util.Iterator;   
  4. import java.util.List;   
  5.   
  6. import org.hibernate.Query;   
  7. import org.hibernate.Session;   
  8. import org.hibernate.SessionFactory;   
  9. import org.hibernate.Transaction;   
  10. import org.hibernate.cfg.Configuration;   
  11.   
  12. /*  
  13.  * 具体操作Hibernate的类:  
  14.  * 增加、删除、修改、按ID查询、模糊查询、查询全部操作  
  15.  * */  
  16. public class PersonOperate {   
  17.     // 在Hibernate中,所有的操作都是通过Session完成   
  18.     // 此Session不同于JSP的Session   
  19.     private Session session = null ;   
  20.        
  21.     // 在构造方法之中实例化session对象   
  22.     public PersonOperate()   
  23.     {   
  24.         // 找到Hibernate配置   
  25.         Configuration config = new Configuration().configure() ;   
  26.         // 从配置中取出SessionFactory   
  27.         SessionFactory factory = config.buildSessionFactory() ;   
  28.         // 从SessionFactory中取出一个Session   
  29.         this.session = factory.openSession() ;   
  30.     }   
  31.        
  32.     // 所有的操作都是通过session进行的   
  33.     // 向数据库中增加数据   
  34.     public void insert(Person p)   
  35.     {   
  36.         // 开始事务   
  37.         Transaction tran = this.session.beginTransaction() ;   
  38.         // 执行语句   
  39.         this.session.save(p) ;   
  40.         // 提交事务   
  41.         tran.commit() ;   
  42.         // 关闭Session   
  43.         this.session.close() ;   
  44.     }   
  45.        
  46.     // 修改   
  47.     public void update(Person p)   
  48.     {   
  49.         // 开始事务   
  50.         Transaction tran = this.session.beginTransaction() ;   
  51.         // 执行语句   
  52.         this.session.update(p) ;   
  53.         // 提交事务   
  54.         tran.commit() ;   
  55.     }   
  56.        
  57.     // 按ID查询:推荐使用HQL —— 是Hibernate官方推荐的查询语言   
  58.     public Person queryById(String id)   
  59.     {   
  60.         Person p = null ;   
  61.         // 使用Hibernate查询语言   
  62.         String hql = "FROM Person as p WHERE p.id=?" ;   
  63.         // 通过Query接口查询   
  64.         Query q = this.session.createQuery(hql) ;   
  65.         q.setString(0,id) ;   
  66.         List l = q.list() ;   
  67.         Iterator iter = l.iterator() ;   
  68.         if(iter.hasNext())   
  69.         {   
  70.             p = (Person)iter.next() ;   
  71.         }   
  72.         return p ;   
  73.     }   
  74.        
  75.     // 删除数据   
  76.     // Hibernate2、Hibernate 3通用的删除   
  77.     // 使用此方法删除数据之前,必须先查找到数据对象,性能呢?   
  78.     public void delete(Person p)   
  79.     {   
  80.         Transaction tran = this.session.beginTransaction() ;   
  81.         // 执行语句   
  82.         this.session.delete(p) ;   
  83.         // 提交事务   
  84.         tran.commit() ;   
  85.     }   
  86.        
  87.     // 在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令   
  88.     public void delete(String id)   
  89.     {   
  90.         String hql = "DELETE Person WHERE id=?" ;   
  91.         Query q = this.session.createQuery(hql) ;   
  92.         // 把参数设置   
  93.         q.setString(0,id) ;   
  94.         // 执行更新语句   
  95.         q.executeUpdate() ;   
  96.         // 进行事务处理   
  97.         this.session.beginTransaction().commit() ;   
  98.     }   
  99.        
  100.     // 查询全部数据,写HQL   
  101.     public List queryAll()   
  102.     {   
  103.         List l = null ;   
  104.         String hql = "FROM Person as p" ;   
  105.         Query q = this.session.createQuery(hql) ;   
  106.         l = q.list() ;   
  107.         return l ;   
  108.     }   
  109.        
  110.     // 模糊查询   
  111.     public List queryByLike(String cond)   
  112.     {   
  113.         List l = null ;   
  114.         String hql = "FROM Person as p WHERE p.name like ?" ;   
  115.         Query q = this.session.createQuery(hql) ;   
  116.         q.setString(0,"%"+cond+"%") ;   
  117.         l = q.list() ;   
  118.         return l ;   
  119.     }   
  120. }   

 

xml 代码
  1. <!---->xml version="1.0" encoding='UTF-8'?>  
  2. <!---->
  3.                             "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  4.                             "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >  
  5.   
  6. <!---->  
  7. <!---->  
  8. <!---->  
  9. <hibernate-mapping package="org.lxh.hibernate.demo01">  
  10.   
  11.     <class name="Person" table="PERSON">  
  12.         <id name="id" column="ID" type="string">  
  13.             <generator class="uuid.hex"/>  
  14.         id>  
  15.     
  16.         <property name="name" column="NAME" type="string"  not-null="true" />  
  17.         <property name="password" column="PASSWORD" type="string"  not-null="true" />  
  18.         <property name="sex" column="SEX" type="string" />  
  19.         <property name="email" column="EMAIL" type="string" />  
  20.     class>  
  21.        
  22. hibernate-mapping>  

二、Hibernate实体层设计 --- 表与子类之间的独立一对一关系

Mysql数据库数据:

create table Item(

id   int primary Key  Auto_increment ,

 name varchar(32) not null ,

manufacturer varchar(32) not null

)

create table book(

id   int primary Key  Auto_increment ,

 pagecount int  not null

)

create table dvd(

id   int primary Key  Auto_increment ,

 reginCode  varchar(32) not null

)

java 代码
  1. package org.beans;   
  2.   
  3. public class Item {   
  4. private String id;   
  5. private String name;   
  6. private String manufacturer;   
  7. public String getId() {   
  8.     return id;   
  9. }   
  10. public void setId(String id) {   
  11.     this.id = id;   
  12. }   
  13. public String getManufacturer() {   
  14.     return manufacturer;   
  15. }   
  16. public void setManufacturer(String manufacturer) {   
  17.     this.manufacturer = manufacturer;   
  18. }   
  19. public String getName() {   
  20.     return name;   
  21. }   
  22. public void setName(String name) {   
  23.     this.name = name;   
  24. }   
  25. }   
java 代码
  1. package org.beans;   
  2.   
  3. public class Book extends Item {   
  4.   
  5. private int pageCount;   
  6.   
  7. public int getPageCount() {   
  8.     return pageCount;   
  9. }   
  10.   
  11. public void setPageCount(int pageCount) {   
  12.     this.pageCount = pageCount;   
  13. }   
  14. }  
java 代码
  1. package org.beans;   
  2.   
  3. public class Dvd extends Item {   
  4. private String reginCode;   
  5.   
  6. public String getReginCode() {   
  7.     return reginCode;   
  8. }   
  9.   
  10. public void setReginCode(String reginCode) {   
  11.     this.reginCode = reginCode;   
  12. }   
  13.   
  14. }  

Item.hibernate.xml

xml 代码
  1. <!---->xml version="1.0" encoding="utf-8"?>  
  2. <!---->
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!---->  
  5. <hibernate-mapping>  
  6.     <class name="org.beans.Item" table="item" catalog="mole">  
  7.         <id name="id" type="java.lang.Integer">  
  8.             <column name="id" />  
  9.             <generator class="native" />  
  10.         id>  
  11.         <property name="name" type="java.lang.String">  
  12.             <column name="name" length="32" not-null="true" />  
  13.         property>  
  14.         <property name="manufacturer" type="java.lang.String">  
  15.             <column name="manufacturer" length="32" not-null="true" />  
  16.         property>  
  17.         <joined-subclass name="org.beans.Book" table="book">  
  18.             <key column="id">key>  
  19.             <property name="pageCount" type="java.lang.Integer" column="pagecount">property>  
  20.         joined-subclass>  
  21.         <joined-subclass name="org.beans.Dvd" table="dvd">  
  22.             <key column="id">key>  
  23.             <property name="reginCode" type="java.lang.String" column="regincode">property>  
  24.         joined-subclass>  
  25.     class>  
  26. hibernate-mapping>  
java 代码
  1. package org.operat;   
  2.   
  3. import org.beans.Item;   
  4. import org.hibernate.Session;   
  5. import org.hibernate.SessionFactory;   
  6. import org.hibernate.Transaction;   
  7. import org.hibernate.cfg.Configuration;   
  8.   
  9. public class ItemOperate {   
  10.     private Session session;   
  11.      public ItemOperate(){   
  12.          Configuration config=new Configuration().configure();   
  13.          SessionFactory factory=config.buildSessionFactory();   
  14.          this.session=factory.openSession();   
  15.          }   
  16.      public void insert(Item item){   
  17.          Transaction tra=session.beginTransaction();   
  18.          this.session.save(item);   
  19.          tra.commit();   
  20.          }   
  21. }   
分享到:
评论

相关推荐

    java文集

    &lt;br&gt;ext学习笔记一&lt;br&gt;小试iBatis&lt;br&gt;RIA(Rich Internet Application)的现状和未来&lt;br&gt;Java应用中域名解析不过期的解决方法&lt;br&gt;Java编程那些事儿45—数组使用示例1&lt;br&gt;一步步熟悉OFBiz&lt;br&gt;用Java做客户端调用.NET写...

    Spring 和Hibernate 整合笔记和jar包

    Spring是一个全面的后端应用框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的ORM(对象关系映射)框架,简化了数据库操作。下面将详细介绍Spring与Hibernate...

    spring笔记

    Spring笔记中提到的技术知识点主要围绕Hibernate框架展开,Hibernate是一个开放源代码的对象关系映射(Object/Relational Mapping,简称ORM)框架,用于Java环境。它对JDBC进行了非常轻量级的对象封装,使得开发者...

    通用后台管理界面框架.rar

    它引入了新的标签,如&lt;section&gt;、&lt;article&gt;和&lt;footer&gt;,使得页面结构更加清晰,增强了语义化。同时,HTML5还提供了离线存储、拖放功能、媒体元素等特性,使得后台管理界面更加互动和便捷。 二、Java:作为服务器端...

    java笔记--从菜鸟到j2se j2ee高手之路

    本笔记旨在帮助初学者从零基础逐步提升至J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)的高手水平。J2SE是Java的核心部分,提供了用于桌面应用程序和服务器端开发的基础框架;而J2EE则是Java在...

    2024最新版python、Java视频教程包括视频、笔记、源码

    视频教程提供了直观的学习方式,笔记能够帮助学习者梳理和复习重点知识,源码的提供则可以让学习者直接看到代码是如何被编写的,从而更好地理解编程概念。通过这样的学习材料,配合大量的实践和项目练习,学习者能够...

    extjs菜鸟做的动态accordion加动态tree

    标题中的“extjs菜鸟做的动态accordion加动态tree”意味着这个项目是初学者使用EXTJS库构建的一个功能,其中包括了动态的Accordion组件和动态的Tree组件。EXTJS是一个强大的JavaScript前端框架,它提供了丰富的用户...

    李兴华老师.rar

    总的来说,李兴华老师的Java笔记是一份全面而系统的Java学习资料,无论是对初学者还是有一定基础的开发者,都能从中受益匪浅。通过阅读和实践这份笔记,读者不仅能扎实Java基础知识,还能提升数据库管理和企业级应用...

    spring3.2.4

    Spring 3.2.4是Spring框架的一个稳定版本,发布于2013年,它在3.2系列中提供了许多增强和改进的功能。Spring框架是Java开发中的一个核心库,用于简化企业级应用程序的创建,它实现了依赖注入(DI)和面向切面编程...

Global site tag (gtag.js) - Google Analytics