- 浏览: 646012 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (310)
- C&C++ (14)
- Java (52)
- Python (13)
- Web (10)
- Tomcat (2)
- Struts2 (2)
- Spring (3)
- Hibernate (11)
- SWT (1)
- Linux (35)
- WebService (1)
- 工具 (3)
- 数据库 (10)
- 开源项目 (3)
- 搜索技术 (4)
- 链接记录 (3)
- 搜集信息 (12)
- 工作笔记 (16)
- 星星点点 (20)
- 英文片语 (7)
- 读书笔记 (3)
- 自考资料 (3)
- 习题自解 (1)
- 一例一课 (0)
- 运动积累 (1)
- 留档 (0)
- SQL (5)
- JPA (1)
- JSP (3)
- JSON (1)
- Javascript (5)
- Excel (1)
- vbox (3)
- 虚拟机 (1)
- nat (1)
- secureCRT (1)
- centos (1)
- ssh (1)
- ide (1)
- hive (2)
- impala (1)
- ascii (1)
- redis (1)
- seckill (1)
- nginx (2)
- git (0)
- mq (1)
- maven (1)
- java并发包 (1)
- 阅源 (1)
- mybatis (1)
最新评论
-
dotjar:
awk -F "/" '{print $3 ...
@Marked-linux命令使用 cut/sort/uniq -
DEMONU:
直接将要删除的key记下来,遍历完了,在删除
@Marked-Java 遍历Map时 删除元素 -
LeeXiao:
感谢分享
@Marked-Java 遍历Map时 删除元素 -
nicegege:
受益匪浅
mysql char varchar -
nicegege:
受益匪浅
@Maked-mysql使用规范
准备工作做好了,开始Hibernate:
1:建立包:package:dao、model、service、util包;
2:开始model实体类Student:id,sname生成getter/setter;
package model; public class Student { private int id; private String name; public int getId() { return id; } private void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3:在Hibernate源码下/project/搜索 *.xml复制以下文件:
hibernate.cfg.xml-->src下;
*.hbm.xml-->model下;
4:配置hibernate.cfg.xml
<session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibnie</property> <property name="connection.username">root</property> <property name="connection.password">1234</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <mapping resource="model/Student.hbm.xml"/> </session-factory>
5:配置Student.hbm.xml
<hibernate-mapping package="model"> <class name="Student" table="s" lazy="false"> <id name="id" type="integer" column="sid"> <generator class="identity"/> </id> <property name="name" type="string" column="sname" /> </class> </hibernate-mapping>
6:加入JUnit4 jar包,加入path;
7:写util.HibernateUtil
package util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory=buildSessionFactory(); /** init sessionFactory */ private static SessionFactory buildSessionFactory() { SessionFactory sessionFactory=null; try{ sessionFactory=new Configuration().configure().buildSessionFactory(); }catch(Throwable te){ System.err.println("init sessionFactory Error:"+te); te.printStackTrace(); } return sessionFactory; } /** get session */ public static Session getSession(){ Session stion=sessionFactory.openSession(); return stion; } }
8:测试HIbernateUtil
testsrc--:
@Test public void testGetSession() { Session stion=HibernateUtil.getSession(); System.out.println(stion); }
9:dao层-->StudentDao
package dao; import java.util.Iterator; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Restrictions; import util.HibernateUtil; import model.Student; public class StudentDao { /** insert; */ public void addStudent(Student stu){ Session session=HibernateUtil.getSession(); Transaction tx=null; try{ tx=session.beginTransaction(); session.save(stu); tx.commit(); }catch(HibernateException he){ tx.rollback(); he.printStackTrace(); }finally{ session.close(); } } /** select; */ public Student getStudent(int sid){ Session session=HibernateUtil.getSession(); Transaction tx=null; Student stu=null; try{ tx=session.beginTransaction(); stu=(Student)session.load(Student.class,new Integer(sid)); // stu=(Student)session.get(Student.class,new Integer(sid)); tx.commit(); }catch(HibernateException he){ tx.rollback(); he.printStackTrace(); }finally{ session.close(); } return stu; } /** update */ public void updateStudent(String oldName,String newName){ Session session=HibernateUtil.getSession(); Transaction tx=null; try{ tx=session.beginTransaction(); Query q=session.createQuery("from Student s where s.name= ?"); q.setParameter(0, oldName); Iterator<Student> it=q.list().iterator(); while(it.hasNext()){ Student s=it.next(); s.setName(newName); session.update(s); } tx.commit(); session.close(); }catch(HibernateException he){ tx.rollback(); he.printStackTrace(); } } /** delete */ public void deleteStudent(String str){ Session session=HibernateUtil.getSession(); Transaction tx=null; try { tx=session.beginTransaction(); /* 1.Criteria查询; */ Criteria criter=session.createCriteria(Student.class).add(Restrictions.like("name","%"+str+"%")); Iterator<Student> it=criter.list().iterator(); /* 2.Query查询 Query q=session.createQuery("from Student as s where s.name like ?"); q.setParameter(0, "%"+str+"%"); Iterator<Student> it=q.list().iterator(); */ /* 3.Native sql查询 表名和表中的列名而不是实体类的类名和属性名了 SQLQuery sqlq=session.createSQLQuery("SELECT * FROM s WHERE sname like ?").addEntity(Student.class); sqlq.setParameter(0, "%"+str+"%"); Iterator<Student> it=sqlq.list().iterator(); */ while(it.hasNext()){ session.delete(it.next()); } tx.commit(); } catch (HibernateException he) { tx.rollback(); he.printStackTrace(); } finally { session.close(); } } }
10.业务层-->service:StudentManager:
package service; import dao.StudentDao; import model.Student; public class StudentManager { StudentDao dao=new StudentDao(); public void save(Student stu){ dao.addStudent(stu); } public Student get(int id){ return dao.getStudent(id); } public void update(String oname,String nname){ dao.updateStudent(oname, nname); } public void delete(String name){ dao.deleteStudent(name); } }
11.测试业务逻辑:StudentManagerTest
package service; import model.Student; import org.junit.Before; import org.junit.Test; public class StudentManagerTest { StudentManager manager; @Before public void init(){ manager=new StudentManager(); } @Test public void testSave() { Student stu1=new Student(); stu1.setName("John woo"); manager.save(stu1); } @Test public void testGet(){ Student stu=manager.get(12); System.out.println(stu.getName()); } @Test public void testUpdate(){ manager.update("Mary","Nie"); } @Test public void testDelete(){ manager.delete("ie"); } }
一个基本hibernate就完成了,包括基本的CRUD还有3种查询方式。
备注:lib下的jar包:
antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar hibernate3.jar hibernate-jpa-2.0-api-1.0.0.Final.jar javassist-3.12.0.GA.jar jta-1.1.jar junit-4.9b1.jar mysql6.jar slf4j-api-1.6.1.jar slf4j-simple-1.6.1.jar
- hibnie_sql.zip (692 Bytes)
- 下载次数: 51
- hibernate_demo_1.zip (16.1 KB)
- 下载次数: 79
发表评论
-
Q: JPA- MappingException: Could not determine type for:
2013-06-06 17:12 1539org.hibernate.MappingExceptio ... -
[hibernate3-摘要]第2节:Hibernate核心应用之Session类的函数
2013-04-27 19:25 909#【openSession和getCurrentSessi ... -
[hibernate3-摘要] 第一节:JPA注解
2013-04-27 19:22 949[hibernate3-摘要]第一节:JPA注解@Entity ... -
hibernate3.6-联合主键注解以及openSession和getCurrentSession区别
2013-04-24 23:34 1371【联合主键】>>>>配置方式:xm ... -
hibernate--Criteria+Restrictions
2012-02-29 15:30 907List cats = session.createCr ... -
Hibernate之第4解之-hibernate_集合映射
2011-04-27 12:13 1974hibernate的集合映射demo: 前提介绍: ... -
Hibernate之第3解之-hibernate_hibernate_many2one_1
2011-04-22 14:39 1294多对一映射简例: 1.我使用学生和地址的关系来做示例: s ... -
hibernate、mysql、中文字符问题
2011-04-21 16:53 1672中文乱码-- 问号 ?? 1:我的Eclipse默认字符集已 ... -
Hibernate之第2解之-hibernate_demo_1_annotation
2011-04-20 17:38 752上一个例子是一个基础的HIbernate的CRUD,不过用的是 ... -
Hibernate之第〇解之准备工作
2011-04-20 11:06 1071从今天开始,小可将自己学习Hibernate的步骤一一登记,以 ...
相关推荐
【标题】"Hibernate之第2解之-hibernate_demo_1_annotation"主要涵盖了使用Hibernate框架进行对象关系映射(ORM)的实践,特别是基于注解的方式。在这个教程中,我们将深入探讨如何利用Java注解来配置Hibernate实体...
在本项目中,"hibernateDemo.rar" 是一个压缩包,包含了一个使用Spring Boot、JPA、Hibernate和Redis构建的示例应用。这个项目旨在展示如何整合这些技术来实现高效的数据存储和缓存管理。以下是对每个组件的详细解释...
【hibernateDemo】是一个关于Hibernate框架学习的项目,它主要涵盖了初学者在接触和理解Hibernate时会遇到的各种基础知识和实战技巧。Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作...
在Hibernate中,每个数据库表都对应一个Java类,我们称之为实体类。实体类需要使用`@Entity`注解标识,并通过`@Table`注解指定对应的数据库表。字段则通过`@Id`(主键)、`@Column`等注解映射到表的列。 例如,一个...
【标题】"HibernateDemo"是一个基础的Hibernate项目,旨在为初学者提供学习Hibernate框架的起点。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,消除了传统JDBC...
Hibernate 提供了两级缓存,第一级缓存是Session级别的,每个Session有自己的缓存;第二级缓存是SessionFactory级别的,可以跨Session共享数据。此外,还可以集成第三方缓存服务如Ehcache、Infinispan等。 **6. ...
在本项目中,“demo.zip”是一个包含Spring Boot和Hibernate集成应用的压缩文件。Spring Boot是Spring框架的一个子项目,旨在简化新Spring应用的初始搭建以及开发过程。它通过内嵌Servlet容器(如Tomcat或Jetty)...
8. **缓存机制**:介绍第一级缓存和第二级缓存,以及如何利用它们提高应用性能。 9. **实体状态管理**:解释持久化对象的四种状态(瞬时、托管、持久和脱管),以及如何在不同状态之间转换。 10. **集成测试**:...
在“SpringMVC4和Hibernate4集成demo”中,我们将探讨如何将这两个框架整合在一起,以构建一个高效、灵活的Java Web应用。 首先,SpringMVC 是 Spring 框架的一部分,专门用于处理 Web 请求。它提供了一个模型-视图...
在这个"android hibernate demo例子"中,开发者可能使用了一个特殊的方法或者第三方库来使Hibernate在Android上运行。 这个"OrmDemo"项目包含以下关键组件: 1. **实体类(Entity Classes)**:这些是与数据库表...
Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),可以提高数据访问性能。可以通过配置启用和配置缓存插件。 总结,这个"hibernate的demo"涵盖了Hibernate的基本用法,包括配置、...
**Hibernate5 + MySQL实现Demo源码详解** 在Java开发中,ORM(对象关系映射)框架使得数据库操作变得更加便捷,而Hibernate作为其中的佼佼者,深受开发者喜爱。本Demo基于Hibernate5,结合MySQL数据库,提供了完整...
【标题】"一个简单的增删查改demo(jsp,hibernate,struts2)"提供了基于Java Web技术栈的数据库操作示例,主要涉及了三个核心组件:JSP(JavaServer Pages)、Hibernate(对象关系映射框架)和Struts2(MVC框架)...
8. **第一级缓存与第二级缓存**:Hibernate提供了一级缓存(Session级别)和二级缓存(SessionFactory级别)机制,提高数据读取效率。 9. **懒加载(Lazy Loading)**:Hibernate支持延迟加载,只在真正需要时加载...
EJB 3 标准的注释包含在 javax.persistence 包,所以我们第一步需要导入这个包。 javax.persistence persistence-api 1.0.2 然后在实体类中添加注释 @Entity @Table(name="EMPLOYEE") public class Employee { @Id @...
【hibernate第一个例子】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例将引导初学者了解如何使用Hibernate进行简单的数据库连接和操作。 首先,我们需要...
在这个名为“demo.rar”的压缩包文件中,我们找到了一个基于Java技术实现的SSH(Spring、Struts2、Hibernate)框架的示例应用,该应用专注于用户登录注册以及文件管理功能。这个DEMO是一个办公自动化系统的简化版本...
总结,这个"spring4搭配hibernate5和mysql的项目Demo"提供了一个完整的Web应用开发实例,展示了如何利用现代Java技术栈构建高效、可维护的数据库驱动的应用程序。对于初学者来说,这是一个很好的学习资源,可以帮助...