前言:

学习学到现在终于要学习框架了,心里有点小激动呢,也不知道自己能不能学好呢,只能按着一步一个脚印的走下去,好了废话不多说。让我们打开hibernate 的大门吧!!!

肯定好多人都会问什么是hibernate呢?

解答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

我们接触了Intelij IDEA,听老师说这是一款特别强大的软件,下面的案例就是那这个软件操作的。有兴趣的同学可以去下载。

    首先我要说一点,在IntelliJ IDEA里面“new Project”就相当于我们eclipse的“workspace”,而“new Module”才是创建一个工 程,这是要注意的一点。

Intelij IDEA 中的架构图:

创建一个工程分为以下几步:

(1)new project

这样一个项目就有了,接下来我们要添加我们需要的资源

(2)创建lib文件夹

以上就是现阶段我们所需要的jar包

(3)创建resource文件夹,其中包含hibernate 的大配置信息,在这要注意命名问题:hibernate.ccfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory>< !--数据库连接设置-->< !--数据库JDBC驱动设置--><property name="connection.driver_class"
>oracle.jdbc.driver.OracleDriver</property>< !--数据库url--><property name="connection.url"
>jdbc:oracle:thin:@localhost:1521:orcl</property>< !--数据库用户名--><property name="connection.username"
>lex</property>< !--数据库用户密码--><property name="connection.password"
>lex</property>< !--JDBC连接池(使用内置的)--><property name="connection.pool_size"
>1</property>< !--SQL方言--><property name="dialect"
>org.hibernate.dialect.Oracle10gDialect</property>< !--使Hibernate自动会话上下文管理--><property name="current_session_context_class"
>thread</property><!--关闭二级缓存--><property name="cache.provider_class"
>org.hibernate.cache.NoCacheProvider</property><!-- 是否将运行期间生成的sql输出到日志以供调试--><property name="show_sql"
>true</property>< !--在启动时,删除和重新创建数据表结构--><property name="hbm2ddl.auto"
>update</property><!-- 关联小配置--><mapping-resource>cn/lex/entity/Student.hbm.xml</mapping-resource>
</hibernate-configuration >

(4)配置小配置,存在于实体层,命名:Student.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.lex.entity"><class name="Student" table="Student"><id name="id" column="id"><generator class="native"/></id><property name="name"></property></class></hibernate-mapping
>

(5)书写测试

package cn.lex.test;import cn.lex.entity.Student;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.util.List;/*** Created by accp on 2017/1/9.*/
public class FirstTest {Configuration cfg;  //配置对象Session session;   //会话对象Transaction tx;    //事务对象@Beforepublic void mybefore(){cfg=new Configuration().configure();  //获取配置对象SessionFactory factory = cfg.buildSessionFactory(); //获取sessionfactory对象session= factory.openSession();  //获取session对象tx= session.beginTransaction();  //开启事务}//添加学生@Testpublic void add(){Student stu=new Student();stu.setName("微冷的雨");session.save(stu);  //提交到数据库System.out.println("save ok!");}//根据条件查询学生姓名@Testpublic void select(){String hql="from Student where id=?";Query query = session.createQuery(hql);query.setParameter(0,26);Student stu =(Student) query.uniqueResult();System.out.println(stu.getName());}

    //修改学生姓名    @Test    public void update(){      Student stu=session.load(Student.class,serializable:1);      stu.setName("天空的星星");      System.out.println("update ok!");

    }

    //删除学生    @Test    public void delete(){        Student stu=session.load(Student.class,serializable:1);        session.delete(stu);        System.out.println("delete ok!");

    }

    //查询学生    @Test    public void select(){      Student stu=session.load(Student.class,serializable:1);      System.out.println("姓名:"+stu.getName());    }@Afterpublic void after(){tx.commit();  //提交事务session.close();  //关闭session}
}

点击运行即可。。。

转载于:https://www.cnblogs.com/xieweikai/p/6826806.html

Hibernate 入门小案例相关推荐

  1. axios vue 回调函数_Vue 02 —— Vue 入门小案例~使用 Axios 中的GET、POST请求

    作为后端攻城狮,写前端代码是一种什么体验? 相信不少人和 @Python大星 一样,有写过前端代码的经历. 记录一下,Vue 框架开发中"啼笑皆非"的故事,非专业前端人员,该案例无 ...

  2. spring boot入门小案例

    spring boot 入门小案例搭建 (1) 在Eclipse中新建一个maven project项目,目录结构如下所示: cn.com.rxyb中存放spring boot的启动类,applica ...

  3. JavaWeb:shiro入门小案例

    学习原因:刚接触Javaweb的时候懂的很少(当然现在也不多),所以开发一个小项目都是自己从头写到尾,从登录界面一直到数据库,当时想以后开发要是都这么写那不是很枯燥?!-知道后来团队开发,接触的开发人 ...

  4. Axure的一些入门小案例

    Axure RP是一款专业的快速原型设计工具.上手入门比较简单,可以帮助我们快速的搭建一个网页原型.接下来我写一些自己入门时候写的小案例. 1.简单的表单 左下角的元件库可以直接拖拽使用以上元件即可, ...

  5. vue3.0网易云音乐及入门小案例

    前言 之前学习vue3.0时做了几个小案例,近段时间又找了几个案例想着把之前做的那些和现在做的放在一起于是休息的时候就搭建了一个vue3的项目.这个项目所用的数据都是页面上写死的,音乐播放器数据是调用 ...

  6. SpringMVC 第一篇(SpringMVC入门小案例)

    1.SpringMVC简介 SpringMVC 是一种基于 Java 实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,它和Struts2 都属于表现层的框架,属于 Spring Frame ...

  7. React初体验-Hello React的组件化方式-React入门小案例

    文章目录 React初体验 Hello React案例演练 Hello React案例升级 Hello React的组件化 组件化的方式 数据依赖 事件绑定 其他案例练习 电影列表展示 计数器的案例 ...

  8. Android入门小案例,制作登陆页面跳转

    这个案例,主要目的是带着大家理解Android开发的基础知识,与UI布局以及点击事件,方便大家能更好的入门.至于如何创建一个Android项目这里就不在过多阐述.笔者这里使用的开发工具是IDEA,语言 ...

  9. Freemarker入门小案例(生成静态网页的其中一种方式)

    其实生成静态网页的方式有好多种,我昨天看了一下,Freemarker是其中一种,但是Freemarker现在我们都用得比较少了,现在用得ActiveMQ用来发送信息到静态页面,不过想了一下这个小东西, ...

最新文章

  1. Hadoop(Install)
  2. 模板方法及策略设计模式实践
  3. 配置.NET程序使用代理进行HTTP请求
  4. 广东网络借贷中介整改验收,留给平台的时间只有8天!
  5. windows安全模式_Winclone 8 for Mac(Windows分区备份迁移和还原工具)
  6. WPAD原理介绍暨故障排查:ISA2006系列之三
  7. 吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码
  8. TensorFlow是什么?怎么用?终于有人讲明白了
  9. Windows server 2016简单部署DNS服务,正向查找和委派
  10. 【Java并发编程】之二:线程中断
  11. django中怎样新建html页面,Django网站创建从html页面到另一个应用程序的主html页面的链接...
  12. Chrome 中迅雷的插件(正确的下载地址)下载以及安装(一)
  13. linux将pdf转为png,将多页PDF转换为PNG并返回(Linux)
  14. vscode 路径宏_VSCode宏怎么设置?VSCode宏的添加方法!
  15. Lipschitz continuity (利普希茨连续)
  16. 我的游戏开发收藏夹 (不定期更新)
  17. python类和对象的应用:烤地瓜
  18. 百度小米滴滴躬身入局,新能源造车如此多娇,引无数大厂竟折腰?
  19. 小米NFC手机复制加密IC门禁卡
  20. .Art域名注册局的行为其实早就引起了众多域名界大佬的强烈不满

热门文章

  1. MLPerf最新AI芯片跑分:谷歌TPU和英伟达打破记录
  2. 通俗说一下python和人工智能有什么关系
  3. android 情景感知 sdk,情景感知服务
  4. 关于mysql和oracle错误的有_关于MySQL与Oracle的区别
  5. 伪元素写竖线_用伪元素画出太极图
  6. 009_调色盘和高亮样式
  7. 047_CSS3多列
  8. 高斯用服务器能算chk文件么,教程(二十四)使用freqchk命令进行热力学校正
  9. linux 安装go编译器,CentOS 7 安装 go 语言开发环境
  10. python分解word文档为多个_将一个word文档按一页或多页拆分成多个文档