hibernate框架基础(请问下,jdbc和hibernate有什么区别啊,二者都是持久层框架吗,跟DAO又有什么区别呢,请指点)

本文目录
- 请问下,jdbc和hibernate有什么区别啊,二者都是持久层框架吗,跟DAO又有什么区别呢,请指点
- Java web 的三大框架如何学
- java有哪些框架需要学习呢
- java的三大框架是什么,功能各是什么
- Java web框架入门学习的路线是怎么样的求详解
- IT培训分享java学习有哪些阶段
- 浅谈Hibernate框架简述
- JAVA软件开发使用的框架有哪些
- struct2 Spring Hibernate 分别能实现什么功能 在.NET Framework 上有对应的实现么
请问下,jdbc和hibernate有什么区别啊,二者都是持久层框架吗,跟DAO又有什么区别呢,请指点
1.首先jdbc不是持久性的,hibernate是的,hibernate实际上是对jdbc的持久性封装,因为hibernate的底层也是有jdbc来实现的。
2.再者,hibernate的效率比jdbc的要高,因为在hibernate里面存在一个缓存(cahe)机制,一级缓存和二级缓存,当从数据库中读取数据的时候会存储两份,一份给用户,一份自己留着,这样,下次访问的时候就不用去连接数据库,直接从缓存中读取,效率大大提高。
3.jdbc连接数据库是强制性的,每次都会去连接,只要输入url之后就会连接,而hibernate是手动连接,手动提交的。
dao太简单我就不说了,希望能帮到你。
Java web 的三大框架如何学
所谓三大框架,即struts、spring及hibernate。要想学习好三大框架,快速掌握,最好的方法无疑是理论与实践结合,由简入繁,由单一到全部,逐一攻克,具体学习步骤如下:
1、先学习struts,struts是世界上第一个经典的mvc框架,其作用就是将业务逻辑与视图分离开来,使得项目层次分明,清晰,更具有结构性。学习一个框架,首先要知道这个框架的作用,有哪些特征,然后就是了解其实现原理,最后就是结合实际项目例子来进一步加深对这个框架的理解。
2、struts掌握了后,接着学习spring,spring就是一个大的工厂,其轻量理强大,它改变了传统的编程模式,将实例化bean交给了容器管理,使得项目中类的耦合度大为降低。spring的特性很多,较为有名就是IOC(控制反转)与AOP(面向世面编程)。要想学习好spring,就要先掌握相应的理论知识点,然后就是动手敲代码,将它的每一个特性都实现一遍,功力到了,自然就掌握了。
3、掌握了以上两大框架之后,可以继续深入学习hibernate框架了。hibernate是一个orm-maping框架,即对象关系映射,将数据库表反转映射成实体对象,使得用户在操作底层数据库时,不用再写那些繁琐的SQL语句,而是通过直接操作对象将数据持久化到数据库。学习好hibernate,首先要掌握其原理,映射配置,然后就是对其每一个特性进行编码验证,如一对一,一对多,多对多关系映射等。可以不结合项目,只要能连上数据库进行相应操作即可。
4、三大框架都初步掌握了后,就可以进行整合学习了。三大框架在整合分工也很明确,也是一个经典的MVC框架,其中struts充于其中的V(即视图层),spring充当C(即业务控制层),hibernate充当M(持久层)。整合学习三大框架的难点在于其中的配置,依赖及管理,这非一两天能完成的事情,得要多查阅相关书籍交资料,动手实践,用心体验。
最后,要想学习好框架,除了掌握其原理、特性外,还要多动手编码,多思考,熟能生巧。一句话,纸上得来终觉浅,绝知此事要躬行。
java有哪些框架需要学习呢
Java有三大框架:Struts,Hibernate和Spring。struts是开源软件,通过学习struts的流程,架构,model部分,view部分和contorller组件来了解框架;Hibernate是开源代码的对象关系映射框架,通过学习session接口等来了解框架。
1.三大框架简介1、Spring Spring 是一个解决了许多在J2EE 开发中常见的问题的强大框架. Spring 提供了管理业务对 象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯.Spring 的架构基础是 基于使用JavaBean 属性的Inversion Control容器.然而,这仅仅是完整图景中的一部 分:Spri
跟着这个网站学吧:网站内容丰富,既有Java SE的基础:中级:前端:J2EE:Java框架:还有实践项目:我自己就是跟着上面的顺序一路学过来...
2.Java 语言编写的 AOP 框架,它给 POJOs 提供了声明式的事务管理和其他企业事务--如... 开始的学习和应用非常的艰苦,很多东西都不 能一下子就很容易的理解.EJB 要严格地...
这是两种以跨平台为特色的开发方式.Qt更多被认为是一种框架,但是Qt中有新增一些C... 博文 在博主认为,学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将...查看全部
2016年8月22日-根据每个人的学习方式、方法不同,可以制定具体的计划。今天为大家整理了搭建Java知识框架的几个方法... java框架SSM一. 序言本次培训分四个阶段进行,...
3.2008年1月3日-和如何学习JAVA框架的一点看法吧,希望对“望而生畏”的您,和“蠢蠢欲动... 自己需要的时候去copy过来就行,个人也认为这是很好的一种方式,往往自己从... 这就是第二个问题。 第二个问题,我想分两方面来回答一下。1、学什么?想要学好,当...
2016年8月3日- 用配置文件或者是Annonation的方式来代替New创建实例,可以说这是一个... Java框架学习 顺序是哪些? Java框架学习 顺序是哪些?详细步骤具体如下:...
2013年12月9日- 三大框架简介JAVA三大框架用来做WEB应用。struts主要负责表示层的显示spring利用Java框架学习方法更多下载资源、学习资料请访问CSDN文库频道....
Java 语言编写的 AOP框架, 它给 POJOs 提供了声明式的事务管理和其他企业事务--如... 在 EJB 开始的学习和应用非常的艰苦, 很多东西都不能一下子就很容易的理解.
希望能帮到你,谢谢!
java的三大框架是什么,功能各是什么
常说的三大框架指:SSH,即:Spring、Struts、Hibernate。
Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来成为一个完成的应用。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术。
Struts:把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说它是大名鼎鼎的功能强大的MVC架构。
Hibernate:强大的ORM工具,然后很方便将数据库记录转化为java的实体实例,将java的实体实例很容易的保存到数据库中,如果你不需要很复杂的数据库访问,利用它你根本就不用了解数据库的细节。
拓展资料
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java由四方面组成:Java编程语言,即语法。Java文件格式,即各种文件夹、文件的后缀。Java虚拟机(JVM),即处理*.class文件的解释器。Java应用程序接口(Java API)。
Java web框架入门学习的路线是怎么样的求详解
JavaWeb核心框架
持久层框架:Hibernate、iBATIS
2.表现层框架:Struts1、Struts2
3.业务层框架:Spring
1、Hibernate:ORM
Hibernate是一个Java ORM开发框架
ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。
ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。
为什么需要ORM框架?
简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:
准备好SQL语句
调用JDBC的API传入SQL语句,设置参数
解析JDBC返回的结果
这个过程实际上非常麻烦,比如:
在Java代码中拼接SQL非常麻烦,而且易于出错
JDBC的代码调用有很多重复性的代码
从JDBC返回的结果转换成领域模型的Java对象很繁琐
而使用ORM框架,则可以让我们用面向对象的方式来操作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!
2. Struts:MVC
Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:
模型Model用于封装与业务逻辑相关的数据和数据处理方法
视图View是数据的HTML展现
控制器Controller负责响应请求,协调Model和View
Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。
MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。
3.Spring:DI/AOP
Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。
其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。
Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。
Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。
IT培训分享java学习有哪些阶段
我想自学java是每一个想要进入这个行业的首选,可自学JAVA,对于初级水平的小白是难上加上。所以我建议首先学习下HTML相关的知识,其次逐渐深入java语言知识,最后系统重新学习一边。今天呢,IT培训就和大家简单聊聊JAVA基础以及学习的6个阶段,希望能够帮助到大家!
一.JAVA基础
1.Java编程语言(新版)
2.Java进阶之设计模式
3.JDK核心API
4.MySQL基础课程
5.正则表达式基础
6.JDBC入门教程
J2SE&SSH框架
7.Java函数式编程
8.J2SE网络通信实践
9.Struts框架教程
10.Hibernate框架教程
11.Spring框架入门教程(新版)
12.MyBatis框架基础入门
13.SpringMVC简易教程
二.6个阶段
第一阶段:HTML、DIV+CSS及相关的前端基础知识语言;
第二阶段:JavaScript及相关的JQuery、Ajax等交互相关的知识;
第三阶段:JAVA基础,面对对象思想以及IO流等JAVA基础知识;
第四阶段:JSP及Servlet,以及相关的JDBC连接数据库等相关的知识;
第五阶段:Java及JSP、Servlet等相关知识学完后,之后就是数据库Mysql、Oracle等相关知识;
第六阶段:三大主流框架Spring、Struts2及Hibernate,抑或是Mybatis等框架,学完框架基本上就OK了,就可以出去找工作了;
以上,就是小编为大家整理的自学JAVA知识,文字写起来看起来就简单的几个字,但是实践起来确实不是那么容易,当然了如果你很聪明的话除外。总之,自学的话,需要极强的自控能力,不能3天打鱼2天晒网。只有坚持下来,才能事半功倍。
浅谈Hibernate框架简述
在基于MVC设计模式的JAVA WEB应用中 Hibernate可以作为模型层/数据访问层 它通过配置文件(hibernate properties或hibernate cfg xml)和映射文件(*** hbm xml)把JAVA对象或PO(Persistent Object 持久化对象)映射到数据库中的数据库 然后通过操作PO 对数据表中的数据进行增 删 改 查等操作
除配置文件 映射文件和持久化类外 Hibernate的核心组件包括以下几部分
a)Configuration类 用来读取Hibernate配置文件 并生成SessionFactory对象
b)SessionFactory接口 产生Session实例工厂
c)Session接口 用来操作PO 它有get() load() save() update()和delete()等方法用来对PO进行加载 保存 更新及删除等操作 它是Hibernate的核心接口
d)Query接口 用来对PO进行查询操 它可以从Session的createQuery()方法生成
e)Transaction接口 用来管理Hibernate事务 它主要方法有mit()和rollback() 可以从Session的beginTrancation()方法生成
Persistent Object
持久化对象可以是普通的Javabeans 惟一特殊的是它们与(仅一个)Session相关联 JavaBeans在Hibernate中存在三种状态
临时状态(transient):当一个JavaBean对象在内存中孤立存在 不与数据库中的数据有任何关联关系时 那么这个JavaBeans对象就称为临时对象(Transient Object)
持久化状态(persistent):当一个JavaBean对象与一个Session相关联时 就变成持久化对象(Persistent Object)
脱管状态(detached):在这个Session被关闭的同时 这个对象也会脱离持久化状态 就变成脱管状态(Detached Object) 可以被应用程序的任何层自由使用 例如可以做与表示层打交道的数据舆对象(Data Transfer Object)
Hibernate的运行过程
Hibernate的运行过程如下
A:应用程序先调用Configration类 该类读取Hibernate的配置文件及映射文件中的信息 并用这些信息生成一个SessionFactpry对象
B:然后从SessionFactory对象生成一个Session对象 并用Session对象生成Transaction对象;可通过Session对象的get() load() save() update() delete()和saveOrUpdate()等方法对PO进行加载 保存 更新 删除等操作;在查询的情况下 可通过Session对象生成一个Query对象 然后利用Query对象执行查询操作;如果没有异常 Transaction对象将提交这些操作结果到数据库中
Hibernate简单示例
数据
create table T_register
(
id int primary key
userName varchar( )
userPwd varchar( )
sex varchar( )
age int
)
视图层 注册页面register jsp
用户名
密 码
性 别
年 龄
设计持久化类TRegister java
package hibernate PO;
/**
* 持久化类
*/
public class TRegister implements java io Serializable {
// Fields
private Integer id;
private String userName;
private String userPwd;
private String sex;
private Integer age;
// Constructors
/** default constructor */
public TRegister() {
}
/** minimal constructor */
public TRegister(Integer id) {
this id = id;
}
/** full constructor */
public TRegister(Integer id String userName String userPwd String sex Integer age) {
this id = id;
this userName = userName;
this userPwd = userPwd;
this sex = sex;
this age = age;
}
// Property accessors
public Integer getId() {
return this id;
}
public void setId(Integer id) {
this id = id;
}
public String getUserName() {
return this userName;
}
public void setUserName(String userName) {
this userName = userName;
}
public String getUserPwd() {
return this userPwd;
}
public void setUserPwd(String userPwd) {
this userPwd = userPwd;
}
public String getSex() {
return this sex;
}
public void setSex(String sex) {
this sex = sex;
}
public Integer getAge() {
return this age;
}
public void setAge(Integer age) {
this age = age;
}
}
设计Hibernate配置文件hibernate cfg xml
//Hibernate/Hibernate Configuration DTD //EN
configuration dtd 》
root
jdbc:mysql://localhost: /study
hibernate dialect MySQLDialect
MySQL
root
gjt mm mysql Driver
true
设计映射文件TRegister hbm xml
mapping dtd 》
设计hibernate基础类HibernateUtil java
package hibernate;
/**
* hibernate 基础类
* @author fengyan
* date :
*/
import hibernate HibernateException;
import hibernate Session;
import hibernate SessionFactory;
import hibernate cfg Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static
{
try
{
Configuration config = new Configuration(nfigure( /hibernate/hibernate cfg xml );
sessionFactory = config buildSessionFactory();
}
catch(Throwable e)
{
throw new ExceptionInInitializerError(e);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession() throws HibernateException
{
Session s = (Session)session get();
//Open a new Session if this Thread has none yet
if(s == null || !s isOpen())
{
s = sessionFactory openSession();
session set(s);
}
return s;
}
public static void closeSession() throws HibernateException
{
Session s = (Session)session get();
session set(null);
if(s != null)
s close();
}
}
设计控制类
package hibernate servlet;
/**
* @author fengyan
* date :
* 设计Hibernate控制类
*/
import hibernate HibernateUtil;
import hibernate PO TRegister;
import java io IOException;
import java io PrintWriter;
import javax servlet ServletException;
import javax servlet HttpServlet;
import javax servlet HttpServletRequest;
import javax servlet HttpServletResponse;
import hibernate HibernateException;
import hibernate Session;
import hibernate Transaction;
public class RegisterServlet extends HttpServlet {
private static final String CONTENT_TYPE = text/;charset=GBK ;
public void init() throws ServletException {
// Put your code here
}
public void destroy() {
super destroy(); // Just puts destroy string in log
// Put your code here
}
public void doGet(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
response setContentType(CONTENT_TYPE);
request setCharacterEncoding( GBK );
PrintWriter out = response getWriter();
String userName = request getParameter( userName );
String userPwd = request getParameter( userPwd );
String sex = request getParameter( sex );
int age = Integer parseInt(request getParameter( age ));
TRegister rg = new TRegister();
rg setAge(age);
rg setSex(sex);
rg setUserName(userName);
rg setUserPwd(userPwd);
Session session = HibernateUtil currentSession();//生成Session实例
Transaction tx = session beginTransaction();
try
{
session save(rg); //保存持久类对象
mit(); //提交到数据库
session close();
response sendRedirect( registerOK jsp );
}
catch(HibernateException e)
{
e printStackTrace();
tx rollback();
}
}
public void doPost(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
doGet(request response);
}
lishixinzhi/Article/program/Java/ky/201311/28144JAVA软件开发使用的框架有哪些
JAVA软件开发开发框架多达几十种,瑭锦Tanjurd总结列举了3种最常见也是最常用方便的3种工具:
1、Struts:Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的
2、Spring:Spring是轻量级的J2EE应用程序框架。
3、Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化。它还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用
struct2 Spring Hibernate 分别能实现什么功能 在.NET Framework 上有对应的实现么
简单的说:
struts2做页面控制,就是控制页面跳转方向。
spring做模块控制,控制模块独立性和集成性,同时也集成struts2和hibernate
hibernate做数据持久化,就是访问数据库的框架。
.NET里没有,每一种语言有自己的思想,.NET里有自己的解决方法。

更多文章:
androidapp源码免费下载(如何实现APK的反编译得到APK的源码)
2026年9月22日 18:00
service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)
2026年9月22日 10:20
html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)
2026年9月22日 10:10
结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)
2026年9月22日 09:40
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30






