- 浏览: 636056 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1481org.hibernate.MappingExceptio ... -
[hibernate3-摘要]第2节:Hibernate核心应用之Session类的函数
2013-04-27 19:25 887#【openSession和getCurrentSessi ... -
[hibernate3-摘要] 第一节:JPA注解
2013-04-27 19:22 925[hibernate3-摘要]第一节:JPA注解@Entity ... -
hibernate3.6-联合主键注解以及openSession和getCurrentSession区别
2013-04-24 23:34 1342【联合主键】>>>>配置方式:xm ... -
hibernate--Criteria+Restrictions
2012-02-29 15:30 879List cats = session.createCr ... -
Hibernate之第4解之-hibernate_集合映射
2011-04-27 12:13 1956hibernate的集合映射demo: 前提介绍: ... -
Hibernate之第3解之-hibernate_hibernate_many2one_1
2011-04-22 14:39 1272多对一映射简例: 1.我使用学生和地址的关系来做示例: s ... -
hibernate、mysql、中文字符问题
2011-04-21 16:53 1645中文乱码-- 问号 ?? 1:我的Eclipse默认字符集已 ... -
Hibernate之第2解之-hibernate_demo_1_annotation
2011-04-20 17:38 728上一个例子是一个基础的HIbernate的CRUD,不过用的是 ... -
Hibernate之第〇解之准备工作
2011-04-20 11:06 1034从今天开始,小可将自己学习Hibernate的步骤一一登记,以 ...
相关推荐
NULL 博文链接:https://niewj.iteye.com/blog/1010112
springboot + hibernate 的第一个项目
EJB 3 标准的注释包含在 javax.persistence 包,所以我们第一步需要导入这个包。 javax.persistence persistence-api 1.0.2 然后在实体类中添加注释 @Entity @Table(name="EMPLOYEE") public class Employee { @Id @...
1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...
1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...
读者可自行将DBConfig中有关Hibernate的相关配置提取到application.properties文件中框架SpringBootSpringMVCSpring data JPAMySQL概述一个前后分离的后端简易demo,利用jpa的注解特性与Hibernate结合,在数据存储的...
关键问题有几个,第一个HibernateDaoSupport这个没有了,在使用hibernateTemplate的时候,报错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session 很是悲...
由于当前我的上传权限只有10M,所以分开压缩成三个分包,这只是源码包的第三部分(part3),请同时下载其它两部分,part2 和 part1,只有三个包都下载了,才能解压。提示:源码包和war包不要弄混了,war包用来快速部署...
Spring-hibernateDemo用springmvc+hib完成的第一个成功的demo
是上一个项目的第二个版本,待完善角色和权限的配置以及权限过滤器。此项目是一个MyEclipse项目,使用Eclipse导入时需要修改.myetadate文件。详细项目信息请看parent\web\src\main\resources\description文件。大家有...
第一个将对特定业务对象进行更改,第二个将批准或拒绝这些更改。使用的技术选择Spring-boot( )建立一个基于后端REST体系结构和使用AngularJS( )的前端实现的快速工作模型。会消耗这些服务。 Hibernate envers...
学习hibernate的第一课,如此简单的创建一个hibernate框架的小案例
jqGrid demo in Struts2 & Hibernate源码压缩包第二部分(part2) 这只是源码包的第二部分(part2),请同时下载其它两部分,part3 and part1
它们在hibernate.cfg.xml文件第15,16行. <property name="connection.username">root <property name="connection.password">root struts配置文件和hibernate的配置文件都在src目录下 4.这就是jqGrid最简单的演示,...
第一天:Hibernate 的入门(Hibernate 的环境搭建、Hibernate 的API、Hibernate 的 CRUD) 第二天:Hibernate 的一级缓存、其他的 API 第三天:Hibernate 的一对多配置、Hibernate 的多对多的配置 第四天:Hibernate...
这只是源码包的第一部分(part1),请同时下载其它两部分,part3 and part2 下载三部分后请用winrar解压.
Demo-Java-RestService 这是我的历史项目之一,现在不在维护中,仅供参考,并演示我的经验。 本项目由 Java + Spring + Hibernate 构建。 它向前端公开 RESTful API。 实施要点: 基于 spring-mvc 的控制器。 验证器...
第1种方式:每个Bean都有一个代理 详见spring-core-transaction-1.xml 第2种方式:所有bean公用一个代理 详见spring-core-transaction-2.xml 第3种方式:使用拦截器 详见spring-core-transaction-3.xml ...