Hibernate3--快速入门--第一天
1. Hibernate概述
|
Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架。 |
a. 轻量级: 使用方便 (比Apache DbUtils 复杂很多倍 )这个概念是个相对概念。(主要是对比EJB来说的,ejb是重量级的(内建组件很多,启动很慢,东西很多))
b. 持久层: JavaEE分为 表现层、业务层(service)、持久层(dao)
Struts2 是一个表现层 框架
Hibernate 是一个持久层 框架 (操作数据库 )--ssh
c. 关系数据库: mysql、oracle 都是关系型数据库 (主流数据库 )
最近 NOSQL 非关系型数据库开始流行 (mongodb、 redis)
d. ORM : Object Relational Mapping 对象关系映射 (一种思想)
将数据表的关系,映射为 类和对象之间关系:
|
关系型数据库 |
Java |
|
表 |
类 |
|
表的字段 |
类的属性 |
|
表的一行数据 |
类的一个实例对象 |
ORM好处: java程序员只需要在程序中操作对象,因为存在映射关系,自动生成SQL语句。不需要你写sql语句,就可以操作数据库。
优点:a.完全orm,自动生成sql语句,简化jdbc
b.反射代理机制,生成代理对象,数据获取可以进行延迟抓取,缓存的使用,达到优化目的
缺点:a.完全orm,自动生成sql,对性能存在质疑。
2. hibernate的快速入门
2.1 JAR包下载和导入
共11个
n 核心jar:hibernate3.jar
n 必须jar:\lib\required\*
n jpa规范jar:\lib\jpa---后面会用到jpa的注解。
n jdbc驱动包:mysql-connector-java-5.0.8-bin.jar—连接数据库
n 使用日志系统-slf4j系列(slf4j核心+ slf4j和log4j的整合包+log4j)—使用静态日志绑定体系+在src中添加log4j的核心配置文件:log4j.properties
2.2log4j是一个apache的日志的实现框架,企业开发中经常使用log4j记录日志。
开发过程中,经常需要想控制台输出一些调试信息,传统的做法是system.out打印。
缺点:信息一定会输出在控制台中,可以将输出信息写入日志文件,调试信息会造成日志文件过于庞大。
日志技术的好处:存在日志级别的概念,通过配置(日志级别)来控制在不同的情况,输出不同级别的日志信息。--可控制输出的
log4j的日志级别:
提供6种日志级别(由高到低)
log4j.xml配置方式
log4j.properties配置方式.—推荐:键值对.
2.3基于hibernate实现数据库表CRUD的操作
第一步:准备数据库的表:
第二步:编写实体类和ORM映射文件
【实体类和映射的编写前需要知道的】
作为ORM框架,
Java和数据库之间的对应关系:类(POJO)--表, 属性--字段,对象--记录,
类就是普通的POJO实体类,必须提供getter和setter方法。
数据类型之间的对应关系:Java实体类、Hibernate、sql之间有数据类型的对应
对应关系:
Hibernate3--快速入门--第一天的更多相关文章
- 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...
- struts快速入门第一篇 —— struts相关XML配置映射及讲解
我们回忆一下在学习JavaWeb过程中(Jsp + servlet编程)所感受到的Servlet的不足: 1 Servllet很多时,web.xml中的代码会很多.这样一来,维护起来就不方便,不利于团 ...
- Sharding-JDBC 快速入门第一课
1. 概述 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Sharding-Sidecar(计划中)这 ...
- d3.js:数据可视化利器之快速入门
hello,data! 在进入d3.js之前,我们先用一个小例子回顾一下将数据可视化的基本流程. 任务 用横向柱状图来直观显示以下数据: var data = [10,15,23,78,57,29,3 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Hibernate第一篇【介绍Hibernate,简述ORM,快速入门】
前言 前面已经学过了Struts2框架了,紧接着就是学习Hibernate框架了-本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门 什么是Hibernate框架? Hib ...
- 使用Xamarin.Forms跨平台开发入门 Hello,Xamarin.Forms 第一部分 快速入门
本文介绍了如何使用VisualStudio开发Xamarin.Forms 应用程序和使用Xamarin.Forms开发应用的基础知识,包括了构建和发布Xamarin.Forms应用的工具,概念和步骤. ...
- 第一章 使用开发者模式快速入门 Odoo 12
本文为最好用的免费ERP系统Odoo 12开发手册系列文章第一篇. Odoo提供了一个快速应用开发框架,非常适合创建商业应用.这类应用通常用于保留业务记录,增删改查操作.Odoo 不仅简化了这类应用的 ...
- 持久层之 MyBatis: 第一篇:快速入门
MyBatis入门到精通 JDBC回顾 1.1.认识MyBatis 1.1.使用IDEA创建maven工程 1.2.引入mysql依赖包 1.3.准备数据 1.4 使用JDBC手写MyBatis框架 ...
- Activiti第一篇【介绍、配置开发环境、快速入门】
Activiti介绍 什么是Activiti? Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开 ...
随机推荐
- 如何通过SQL注入获取服务器本地文件
写在前面的话 SQL注入可以称得上是最臭名昭著的安全漏洞了,而SQL注入漏洞也已经给整个网络世界造成了巨大的破坏.针对SQL漏洞,研究人员也已经开发出了多种不同的利用技术来实施攻击,包括非法访问存储在 ...
- zabbix之Low-level discovery(自动发现)
功能: 自动发现挂载点并自动监控 自动发现网卡并自动监控 创建自动发现挂载点并监控 功能 假如要在monitor_linux模板中创建自动发现挂载点的功能 配置-->模板-->选择模板-- ...
- kibana dev tools快捷键
kibana dev tools快捷键 ctrl+enter 提交请求 ctrl+i 自动缩进 ctrl+enter 提交请求 down 打开自动补全菜单 enter或tab 选中项自动补全 esc ...
- SolidEdge 如何绘制辅助视图
如果你要创建辅助视图,则点击辅助视图按钮,然后鼠标滑过要正视的面上,出现灰色的时候向上拉即可. 你可以右击箭头,点击性质,改变箭头的符号等样式.
- Ghost本地安装highlight.js使代码高亮
对于程序猿写博客来说,这代码高亮是起码的要求.可是Ghost本身没有支持高亮代码. 可是能够通过扩展来实现,它就是highlight.js--附官方站点,看了下首页介绍,真的非常强大,如今说说怎么进行 ...
- 在 Edison 上自动启动 Arduino Sketch
前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的链接.图片显示,请访问我的博客原文: http://www.cnblog ...
- Java基础 面向对象的详解
1.1 万物皆对象 我们是怎么认识世界的? 人类从小就不断的接触到各种各类存在世界上的各种生物,然后通过事物的公共特性,将它们归类,所以以后就不会出现见到猫叫老虎.那么我们在现实生活中,是通过具体的某 ...
- all rows from client_id can grow infinitely compared to a single node when hashing by client_id
all rows from client_id can grow infinitely compared to a single node when hashing by client_id Re: ...
- LOJ#139. 树链剖分
LOJ#139. 树链剖分 题目描述 这是一道模板题. 给定一棵$n$个节点的树,初始时该树的根为 1 号节点,每个节点有一个给定的权值.下面依次进行 m 个操作,操作分为如下五种类型: 换根:将一个 ...
- PR修改例子
DATA: lt_items_old LIKE TABLE OF bapiebanv WITH HEADER LINE. DATA: lt_items_new LIKE TABLE ...