JDBC&Hibernate
当数据库有大量用户来访问要采取什么技术解决
可以采用连接池;
什么是ORM
对象关系映射(Object Relational Mapping 简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的想象的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另一种形式。
Hibernate有哪5个核心接口。
Configuration接口:配置Hibernate,根据其启动Hibernate,创建SessionFactory对象;
SessionFactory接口:初始化Hibernate,充当数据储存源的代理;创建Session对象,SessionFactory是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;
Session接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个Session,是轻量级、一级缓存;
Transaction接口:管理事务;
Query和Criteria接口:执行数据库的查询。
在Hibernate中,在配置文件呈标题一对多,多对多的标签是什么
一对多的标签为<one-to-many>;
多对多的标签为<many-to-many>;
Hibernate的二级缓存是什么
SessionFactory的缓存为Hibernate的二级缓存;
Hibernate是如何管理事务的
Hibernate的事务实际上是底层的JDBC Transaction的封装或者是JTA Transaction的封装;默认情况下使用JDBC Transaction。
什么是重量级,什么是轻量级
轻量级是指它的创建和销毁不需要小号太多的资源,意味着可以在程序中经常的创建和销毁Session的对象;
重量级意味不能随意的创建和销毁它的实例,会占用很多的资源。
事务处理
Connection类中提供了三个事务处理方法:
setAutoCommit(Boolean autoCommit):设置是否自动提交事务,默认为自动提交事务,即为true,通过设置false禁止自动提交事务;
commit():提交事务;
rollback():回滚事务。
Java中访问数据库的步骤?Statement和PreparedStatement之间的区别?
Java中访问数据库的步骤:
1、注册驱动;
2、建立连接;
3、创建Statement;
4、执行SQL语句;
5、处理结果集(若SQL语句为查询语句);
6、关闭连接。
PreparedStatement被创建时即指定了SQL语句,通常用于执行多次结构相同的SQL语句。
JDBC、Hibernate分页怎样实现
Hibernate的分页
Query query = session.createQuery("from Student");
query.setFirstResult(firstResult);//设置每页开始的记录号
query.setMaxResult(resultNumber);//设置每页显示的记录数
Collection students = query.list();
JDBC的分页(根据不同的数据库才用不同的SQL分页语句)
例如Oracle中的SQL语句为:"SELECT * FROM (SELECT a.*, rownum r FROM TB_STUDENT) WHERE r between 2 and 10"
查询从记录号2到记录号10之间的所有记录;
JDBC&Hibernate的更多相关文章
- jdbc hibernate myBatis比较
jdbc hibernate myBatis比较 jdbc 优点:性能高,易掌握 缺点:代码繁琐 hibernate 优点:不用写sql,代码简洁 缺点:性能不好 自动生成的sql效率低下(复杂业务) ...
- Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate
二.OOA/D 与UML 部分:(共6 题:基础2 道,中等难度4 道) 96.UML 是什么?常用的几种图?[基础] 答:UML 是标准建模语言:常用图包括:用例图,静态图(包括类图.对象图和包图) ...
- jpa,jdbc,hibernate/mybatis,数据库驱动
JPA是规范,hibernate/mybatis是对规范的实现,hibernate/mybatis是对jdbc的封装,也就是说hibernate/mybatis还是会调用jdbc. 我们平时使用 ...
- 服务器和java程序的桥梁--jdbc/hibernate
现实的应用程序都是用户通过可视化界面发出指令从而修改数据库.本篇文章以Oracle为例,模拟怎么通过java代码实现数据库的增删改查. 新建一个Java项目,要建好桥梁,首先要拷入驱动Jar包放在项目 ...
- 事务种类jdbc,Hibernate,JTA事务
JDBC事务 String URL="jdbc:sqlserver://localhost:1433;databaseName=test2"; String USER=" ...
- 存储层技术:JDBC、Hibernate、Mybatis三者之间的比较学习
JDBC Hibernate Mybatis (Java DataBase Connnection) 是通过JAVA访问数据库 对JDBC的轻量封装 像操作对象操作数据库 对SQL的轻 ...
- 1.Hibernate简介
1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发; b.大大减少代码量; c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...
- hibernate.properties官方属性用例(可用于hibernate.cfg.xml属性参考)
######################### Query Language ######################### ## define query language constant ...
- hibernate.cfg.xml文件的配置模板和不同数据库的配置參数
(1)hibernate.cfg.xml文件的配置模板 <?xml version="1.0" encoding="UTF-8"?> <!DO ...
随机推荐
- OpenCV Mat格式存储YUV图像
YUV图像用的比较多,而且YUV图像的格式众多(YUV格式可以参考YUV pixel formats),如何用OpenCV的Mat类型来存储YUV图像也是经常遇到的问题. 对于YUV444图像来说,就 ...
- 面向对象一 OOP与类
OOP面向对象 面向对象与面向过程 面向过程让计算机有步骤的顺次做一件事情,是一种过程化的叙事思维:面向对象是一种计算机世界里解决复杂软件工程的方法论,拆解问题复杂度,从人类思维角度提出解决问题的步骤 ...
- 解决Ubuntu自带编译器不好使问题
解决Ubuntu自带编译器不好使问题 1.删除Ubuntu自带的tiny版本,这个版本用起来很别扭不好使. 2.安装full版本的vim 3.显示效果:full版本. 之前自带的版本:
- postgresql数据库查询慢SQL
--查询总耗时最长SQLselect * from pg_stat_statements order by total_time desc;--查询平均耗时最长SQLselect * from pg_ ...
- UITableViewCell上放UICollectionView ,UICollectionViewCell无法复用bug
如题: UITableViewCell上放UICollectionView ,UICollectionViewCell无法复用bug 如果UITableViewCell的size大于整个collect ...
- PMP学习总结(1) -- 引论
3月18日考试,1个月后出的成绩,当我拿到Pass的结果的时候还是蛮开心的,因为在备考期间,公司项目十分紧急,经常加班到晚上9,10点,而且宝贝女儿也在这个期间出生,所以备考是十分辛苦的,经常晚上11 ...
- Javascript高级编程学习笔记(58)—— 事件(2)事件处理程序
事件处理程序 事件处理程序即响应某个事件的函数 事件处理程序以 “on” 开头 如“onclick”,“onload” HTML事件处理程序 某个元素支持的每种事件都可以使用一个与响应的事件处理程序同 ...
- Python学习笔记【第十三篇】:Python网络编程一Socket基础
什么是⽹络 网络能把双方或多方连在一起的工具,即把数据从一方传递到另一方进行数据传递. 网络编程就是不同电脑上的软件能够进行数据传递.即进程间的通讯. 什么是TCP/IP协议 协议就是大家一起遵守的约 ...
- Python Tkinter 简单使用
简单的一些实例,能够实现一般的功能就够用了 Tkinter: 创建顶层窗口: # -*- coding: utf-8 -*- from Tkinter import * root = Tk() r ...
- OWIN 自托管静态网站
我们知道,借助OWIN,WebApi,SignalR,WCF 都可以创建自托管(Self-Host)实例,完全不需要IIS,静态网站也可以. 最近做一个服务器监控小工具,用 SignalR 通信,监控 ...