用hibernate类实现数据库的基本操作
首先,介绍一下haibernate。hibernate本来的意思是Let Java objects hibernate in the relational database(让java对象在关系书库中冬眠),也就是实现java对在关系数据库中的持久化管理。
Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以随心所欲的使用对象编程思维来操纵数据库。简单的说就是:
1.封装了通过JDBC访问数据库操作。
2.向上层应用提供访问面向对象数据访问的API。
下面介绍一下hibernate类的常用操作。
- /*
- *具体操作hibernate的类
- *增加,删除,修改,按ID查询,模糊查询,查询全部
- **/
- public class PersonOperate {
- //在hibernate中所有操作都是由Session完成
- public Session session = null;
- //在构造方法中实例化Session对象
- public PersonOperate(){
- //找出hibernate的配置
- Configuration config = new Configuration().configure();
- //从配置中取出SessionFactory
- SessionFactory sf = config.buildSessionFactory();
- //从SessionFactory中取出Session
- this.session = sf.openSession();
- }
- //操作Hibernate类的所有操作都是通过Session完成的
- //增加数据库中数据
- public void insert(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.save(person);
- //提交事务
- tran.commit();
- session.close();
- }
- //操作Hibernate类更改数据库中的数据
- public void update(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.update(person);
- //提交事务
- tran.commit();
- }
- /*操作Hibernate类:按ID查询
- *我们插入,修改都是对对象进行操作
- *那么我们查询的时候也应该是返回一个对象
- **/
- public Person queryById(String id){
- System.out.println(id);
- Person person = null;
- //hibernate查询语句
- String hql = "FROM Person as p WHERE p.id = ?";
- Query q = session.createQuery(hql);
- q.setString(0, id);
- List list = q.list();
- Iterator iteator = list.iterator();
- if(iteator.hasNext()){
- person = (Person)iteator.next();
- }
- return person;
- }
- /*操作Hibernate类:删除数据库中数据
- *hiberante2,hibernate3中通用的删除方法
- *缺点:删除数据之前要先查询一次数据,找出删除的数据对象
- *性能低下
- **/
- public void delete(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.delete(person);
- //提交事务
- tran.commit();
- }
- //hibernate3的用法
- public void delete(String id){
- //开始事务
- Transaction tran = session.beginTransaction();
- String hql = "DELETE Person WHERE id = ?";
- Query q = session.createQuery(hql);
- q.setString(0, id);
- //执行更新语句
- q.executeUpdate();
- //提交事务
- tran.commit();
- }
- //操作Hibernate类:查询全部数据
- public List queryAll(){
- List list = null;
- String hql = "FROM Person as p ";
- Query q = session.createQuery(hql);
- list = q.list();
- return list;
- }
- //操作Hibernate类:模糊查询
- public List queryByLike(String colnum,String value){
- List list = null;
- String hql = "FROM Person as p WHERE p."+ colnum +" like ?";
- Query q = session.createQuery(hql);
- q.setString(0, "%"+ value +"%");
- list = q.list();
- return list;
- }
- }
转载于:https://www.cnblogs.com/flyingzqx/archive/2009/12/11/1621638.html
用hibernate类实现数据库的基本操作相关推荐
- Qt实战案例(28)——利用QSQL相关类实现对MySQL数据库的基本操作及相关设置详解
目录 一.项目介绍 二.项目基本配置 2.1 安装MySQL 2.2 创建Qt项目 2.3 移动libmysql.dll文件 三.UI界面设计 四.主程序实现 4.1 pro文件 4.2 main.c ...
- JDBC编程:2(数据库的基本操作)
数据库的基本操作 查询数据 在开始前先简单地介绍一下什么是静态SQL和动态SQL: 静态SQL,在编译阶段就可以确定数据库要做什么事情.在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结 ...
- 图文教程:使用MyEclipse的hibernate工具从数据库反向生成实体Bean
为什么80%的码农都做不了架构师?>>> 本文介绍如何使用MyEclipse的hibernate工具从数据库反向生成实体Bean. 一.打开MyEclips ...
- 使用hibernate自动生成数据库表
使用hibernate自动生成数据库表 使用hibernate自动生成数据库表在hibernate3.2以后有两种方式: 1,使用hbm.xml形式:2,使用注解的形式. 本文介绍第一种方式: IDE ...
- Hibernate用Mysql数据库时链接关闭异常的解决
在一个项目中,客户要求除操作系统外全部使用免费软件,因此我使用了Mysql 4.0作为数据库服务器,其JDBC驱动为3.0.9版本,在给客户安装后调试一切正常.可是到了第二天,只要一登录就提示&quo ...
- TP框架对数据库的基本操作
数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找 ...
- Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...
- 1-1 MySQL数据库的基本操作 【增删改查】
1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...
- 易语言逐条读access数据_[原创]用易语言对ACCESS数据库进行基本操作
用易语言对ACCESS数据库进行基本操作 本人弄这个例程前,对数据库知道的不多,仅会一些简单的操作,根本不懂SQL的命令,可以说,在这方面的知识就是一空二白. 在易语言的论坛里,我能找到许多关于易语言 ...
最新文章
- 2022-2028年中国酱腌菜行业市场研究及前瞻分析报告
- 把Vi改造成Vim的作者,现在又让Vim快了70倍
- 设置IE安全并打开自动仿冒网站筛选器和IE安全设置
- include的两种形式、CPP的搜索路径
- 1、MySQL为什么需要事务?
- MySQL中的组函数(聚合函数)
- 一个springboot能支持多少并发_吃透这篇,你也能搭建出一个高并发和高性能的系统...
- 标示符和关键字的总结--希望别再犯错
- primefaces_Primefaces CommandLink
- springmvc 需要用到的核心jar包
- C6748和音频ADC连接时候的TDM以及I2S格式问题
- VirtualBox安装VBoxGuestAdditions增强功能
- 【课程·研】高级人工智能 | MOOC习题及课后作业:期末考试
- MSM8937系统启动流程【转】
- ggplot2的中文显示
- Java游戏项目之坦克大战
- 华为二手价格表(最新2022.2.16)
- Arduino压电震动传感器
- 2020-4-20训练赛
- Oracle GoldenGate Monitor agent安装后的报错OGGMON-20603
热门文章
- VS-设置签出独占锁
- 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)
- sqlmap注入检测经验0x01
- 项目-团队-技术-个人(专业篇)
- [转载]Programming MS Office 2000 Web Components第二章第三节
- 什么是k-NN算法?怎样实现?终于有人讲明白了
- Cortex-M3异常
- python svm 决策方程_python – 使用scikit-learn线性SVM提取决策边界
- 学会这几招,晋升不慌了!
- 所有和Java中代理有关的知识点都在这了。