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

菜鸟学习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写...

    新手html学习笔记(仅供菜鸟成长参考).rar

    本资源“新手html学习笔记(仅供菜鸟成长参考).rar”为初学者提供了一条理解并掌握HTML的途径。下面将详细阐述HTML的相关知识点。 一、HTML概述 HTML是一种用于创建网页的标准标记语言,它由一系列元素组成,这些...

    html 菜鸟级作品

    在这个例子中,`&lt;h1&gt;`定义了最大的标题,`&lt;p&gt;`创建了一个段落,`&lt;a&gt;`定义了一个指向其他URL的链接,`&lt;img&gt;`则用于插入图像,`src`属性指定图像的路径,`alt`属性提供替代文本,当图像无法显示时会显示这个文本。...

    项目辅助开发器1.0 Beta3

    全自动程序升级,保证第一时间体验最新版本&lt;br&gt;&lt;br&gt;本人菜鸟,以上功能肤浅,还请各位多多提意见。&lt;br&gt;&lt;br&gt;&lt;br&gt;我的个人主页:http://www.dirain.cn/&lt;br&gt;&lt;br&gt;博客园:http://dirain.cnblogs.com/&lt;br&gt;&lt;br&gt;QQ:562342&lt;br&gt;...

    很适合菜鸟学习的ASP.NET( C# )留言簿

    功能比较简单,比较适合菜鸟级的朋友们学习研究!&lt;br&gt;&lt;br&gt;联系作者:&lt;br&gt;CSDN主页:http://hi.csdn.net/yuxiangshui&lt;br&gt;校内网主页:http://xiaonei.com/getuser.do?id=221012237&lt;br&gt;QQ:115402708&lt;br&gt;&lt;br&gt;注:...

    项目辅助开发器 1.0 Beta2

    全自动程序升级,保证第一时间体验最新版本&lt;br&gt;&lt;br&gt;本人菜鸟,以上功能肤浅,还请各位多多提意见。&lt;br&gt;&lt;br&gt;&lt;br&gt;我的个人主页:http://www.dirain.cn/&lt;br&gt;&lt;br&gt;博客园:http://dirain.cnblogs.com/&lt;br&gt;&lt;br&gt;QQ:562342&lt;br&gt;...

    菜鸟学习javascript实例教程.pdf

    如下所示,`&lt;h1&gt;`标签将文本设置为一级标题: ```html &lt;html&gt; &lt;body&gt; &lt;script type="text/javascript"&gt; document.write("&lt;h1&gt;Hello World!&lt;/h1&gt;"); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; ``` 关于JavaScript的位置,它可以在...

    IceLight V1.3.44[一线光-无驱,恢复SSDT,可杀IS,SS]

    具体如下:&lt;br&gt;&lt;br&gt;1,修复了上一版本中在英文操作系统中中文显示为乱码的问题.(在此感谢蛋白兔子参与测试)&lt;br&gt;2,重新为IceLight设计了一款新图标,菜单使用OFFICE XP的风格.&lt;br&gt;&lt;br&gt;二.系统&lt;br&gt;&lt;br&gt;1,进程\线程中增加...

    点对点多线程文件传输

    点对点多线程文件传输&lt;br&gt;功能:&lt;br&gt;1。异步模式&lt;br&gt;2。多线程&lt;br&gt;&lt;br&gt;说明:&lt;br&gt;1。程序不是我写的,大家学习用,其中有基本多线程传输的头文件。&lt;br&gt;2。程序已经转换过,可以在VC++6。0中运行&lt;br&gt;3。菜鸟学习用,...

    中国学生城5.0

    中国学生城5.0下载,希望的下.&lt;br&gt; 中国学生城5.0下载,希望的下.&lt;br&gt; 演示地址一:http://www.7to23.com&lt;br&gt; 这个是5.1的&lt;br&gt; 演示二:http://www.dwsp.net/dvbbs&lt;br&gt; &lt;br&gt; &lt;br&gt; 如果有问题,请去投诉与建议版面提出...

    完美html教程,里面包含两个ppt html课件,一个一个html标签库文档

    此外,PPT可能还会涉及文本格式化标签,如&lt;h1&gt;到&lt;h6&gt;的标题级别,&lt;p&gt;段落,&lt;strong&gt;加粗,&lt;em&gt;斜体等,以及如何创建链接&lt;a&gt;和图像&lt;img&gt;。 接着是"HTML.ppt",这个可能是更深入的HTML教程,可能涵盖了更复杂的元素和...

    菜鸟教程html实例.zip

    4. **表格(Table)**:`&lt;table&gt;`、`&lt;tr&gt;`、`&lt;td&gt;`和`&lt;th&gt;`用于创建表格,`&lt;thead&gt;`、`&lt;tbody&gt;`和`&lt;tfoot&gt;`分别定义表头、主体和页脚部分。 5. **列表(Lists)**:`&lt;ul&gt;`和`&lt;ol&gt;`创建无序和有序列表,`&lt;li&gt;`定义...

    动网论坛计数器(适用于所有版本)

    动网6.0/6.1/7.0计数器&lt;br&gt; &lt;br&gt; 程序修改:试用爱情&lt;br&gt; 源程序:毒爱计数器&lt;br&gt; &lt;br&gt; 说明:本程序是我修改了毒爱计数器得来的,用来为统计动网论坛的日访问题也设计。&lt;br&gt; &lt;br&gt; 安装后就显示在论坛的底部。可以...

    体育竞猜插件 V1.2完美版 for dvbbs 7.0sp2

    一、版权申明&lt;br&gt; &lt;br&gt; 1、本插件为[中国眼]网使用ASP技术原创,花猫工作室授权升级。&lt;br&gt; &lt;br&gt; 2、本插件升级版V1.2版权为[中国眼]和花猫工作室共同所有,请使用者尊重我们的劳动&lt;br&gt; &lt;br&gt; 3、本插件由[中国眼]沙子...

    雷傲论坛XP3.0云林全插件美化版 V1.0

    &lt;br&gt; &lt;br&gt; 开发完这个版本,我们云林菜鸟工作室进一步投入到正式版的开发中,相信在一周内,会给大家带来更多的惊喜和更完美的程序!!!&lt;br&gt; &lt;br&gt; 请大家到 www.yunlin.cn/bbs 关注我们的最新动态!&lt;br&gt; *包括* 社区银行 |...

    w3cschool菜鸟教程(html)

    10. **框架**:`&lt;frameset&gt;`和`&lt;frame&gt;`元素可以创建网页框架,让多个网页同时显示在一个浏览器窗口内。 11. **表单**:HTML表单用于用户输入数据,`&lt;form&gt;`元素是表单的容器,`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;select&gt;`...

    菜鸟教程离线html版

    **菜鸟教程离线HTML版** 是一个专门为前端学习者准备的资源包,它包含了丰富的HTML教程内容,使得用户可以在没有网络连接的情况下也能进行学习。这个压缩包中的所有资料都是为了帮助初学者掌握HTML这一基础且重要的...

    w3cschool菜鸟教程离线版( 完整 )

    《w3cschool菜鸟教程离线版(完整)》是一个包含丰富IT学习资源的压缩包,其中主要聚焦在Web开发的基础技术,如JavaScript和HTML。这个离线版本为那些无法联网或者希望随时随地学习的用户提供了一个方便的学习平台。...

    强大的日历控件

    2. 注意事项&lt;br&gt;My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 &lt;br&gt;My97DatePicker.htm是必须文件,不可删除 &lt;br&gt;各目录及文件的用途: &lt;br&gt;WdatePicker.js 配置文件,在...

    HTML代码 大全

    3. &lt;body&gt;&lt;/body&gt;:是Html文档的主体部分,在此标签对之间可以包含&lt;p&gt;、&lt;/p&gt;、&lt;h1&gt;、&lt;/h1&gt;、&lt;br&gt;、&lt;hr&gt;等等众多的标签,它们所定义的文本、图像等将会在浏览器的框内显示出来。 4. &lt;title&gt;&lt;/title&gt;:用于显示浏览器...

Global site tag (gtag.js) - Google Analytics