前言
成都创新互联公司专注于郫都网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供郫都营销型网站建设,郫都网站制作、郫都网页设计、郫都网站官网定制、微信小程序定制开发服务,打造郫都网络公司原创品牌,更为您提供郫都网站排名全网营销落地服务。
ORM框架不是一个新话题,它已经伴随我们很多年了。它提供了概念性的、易于理解的数据模型,将数据库中的表和内存中的对象建立了很好的映射关系。在Java中常用的ORM框架主要有两个:Hibernate和iBatis。本篇文章主要介绍Hibernate的使用方法,后续会出介绍iBatis的文章。
传统的MVC开发模式
SSH框架在开发中的作用
同时可以看下其余框架(SSM、SSS)的含义:
Hibernate是什么
1.Hibernate是一个非侵入式ORMapping框架
2.ORMapping解析
Hibernate就是能够通过操作Java对象来达到操作数据库的一门技术。
Hibernate能干什么
简单的说:实现数据库的所有操作(CRUD),是原有DAO层的一个解决方案,也是一个替代品。
Hibernate的简单使用
「简单使用:」
导包,将下载下来的required+jpa相关的包放到一个文件里面
在src下面创建hibernate.cfg.xml配置文件
- "-//Hibernate/Hibernate Configuration DTD//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver jdbc:mysql:///qianyu root root org.hibernate.dialect.MySQL5Dialect update
创建Java的类的对象
- public class User implements Serializable{
- private static final long serialVersionUID = -6949433888868762441L;
- private int uId;
- private String userName;
- private String userPwd;
- public User(int uId, String userName, String userPwd) {
- super();
- this.uId = uId;
- this.userName = userName;
- this.userPwd = userPwd;
- }
- public User() {
- super();
- }
- public int getuId() {
- return uId;
- }
- public void setuId(int uId) {
- this.uId = uId;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getUserPwd() {
- return userPwd;
- }
- public void setUserPwd(String userPwd) {
- this.userPwd = userPwd;
- }
- @Override
- public String toString() {
- return "User [uId=" + uId + ", userName=" + userName + ", userPwd=" + userPwd + "]";
- }
- }
编写测试类
- @Test
- public void testHelloWord() throws Exception {
- //引入配置文件
- Configuration cfg=new Configuration().configure("hibernate.cfg.xml");
- //创建SessionFactory对象
- SessionFactory sf=cfg.buildSessionFactory();
- //创建会话
- Session session=sf.openSession();
- //开启事务
- session.beginTransaction();
- //操作对象
- User user=new User(1,"小羽","110");
- //开始操作
- session.save(user);
- //进行事务的提交
- session.getTransaction().commit();
- session.close();
- }
Hibernate中的hibernate.cfg.xml配置文件的详解
- "-//Hibernate/Hibernate Configuration DTD//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver jdbc:mysql:///qianyu root root org.hibernate.dialect.MySQL5Dialect update true true
Hibernate的xxx.hbm.xml配置文件的详解
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
Hibernate中的CRUD的实现
- 添加数据
- session.save(user);
- session.persist(user);
- 修改数据
- session.beginTransaction();
- //查询数据(积极的加载)
- User user=session.get(User.class,1);
- //下面支持的是懒加载
- user.setUserName("xxxxx");
- user.setUserPwd("yyyyy");
- session.getTransaction().commit();
- 数据查询
- //查询数据(积极的加载)
- User user=session.get(User.class,1);
- //下面支持的是懒加载
- User user2=session.load(User.class,1);
- 删除数据
- //查询数据(积极的加载)
- User user=session.get(User.class,1);
- session.delete(user);
Hibernate中的帮助类的编写
- public class HibernateUtils {
- private static Configuration cfg=null;
- private static SessionFactory sf=null;
- private static ThreadLocal
threadLocal=null; - static{
- //初始化线程的局部变量
- threadLocal=new ThreadLocal
(); - //加载配置文件
- cfg=new Configuration().configure("config/hibernate.cfg.xml");
- //生成我们的工厂
- sf=cfg.buildSessionFactory();
- }
- /**
- * 获取session的玩法
- * @Title: getSession
- * @Description: TODO
- * @param: @return
- * @return: Session
- * @throws
- */
- public static Session getSession(){
- Session session=threadLocal.get();
- if(null==session){
- session=sf.openSession();
- session.beginTransaction();
- threadLocal.set(session);
- }
- return session;
- }
- /**
- * 关闭Session
- * @Title: close
- * @Description: TODO
- * @param:
- * @return: void
- * @throws
- */
- public static void close(){
- Session session=threadLocal.get();
- if(null!=session){
- session.getTransaction().commit();
- session.close();
- threadLocal.remove();
- }
- }
- }
注意事项
Save和Persist的区别
结语
本篇关于Hibernate的介绍就先到这里结束了,后续会出更多关于Hibernate系列更多文章,谢谢大家支持!
分享标题:连Hibernate技术都不清楚,你敢说你自己会ORM框架?
网站链接:http://www.gawzjz.com/qtweb2/news17/15767.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联