hibernate基本配置与简单增删改查

  ORM(Object Relation Mapping)是对象关系映射,是一个思想,它的作用是在关系数据库与对象之间做一个自动映射,将数据库中的表格映射到一个类,也就是持久化类,数据表中每行映射为对象,行中的各个字段映射为对象的属性,这样可以在开发中使用面向对象的思想来操作数据库。

  其中hibernate是ORM思想实现的一个持久层框架。

其中有三个主要的内容:1.持久化类(*.java) 2.映射文件(*.hbm.xml) 3.配置文件(*.cfg.xml)

使用Hibernate框架搭建一个最基本的应用(oracle)。。。

1....首先,创建一个工程,java或web

2....将hibernate有关的jar包导入及数据库驱动包

 

hibernate-release-4.3.11.Final
//由于我使用的4.3.11版本,我把其目录下/lib/required下的所有包都导入工程
//由于要与数据库连接,需要导入数据连接的驱动jar包

3....书写一个Javabean ---持久化类..须对应于数据表的各个字段

public class Info {
	private String sno;
	private String sname;
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}

}

4....写一个映射文件,从hibernate包中找个(*.hbm.xml)然后修改,或者使用jboss tools插件生成一个(需要根据eclipse及java版本额外安装),作用是映射持久化类与数据表的不同字段

  一个持久化类对应一个映射文件xml,可有多个映射文件,代码中可以添加其他属性值

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!--文件名为 持久化类.hbm.xml 存放在持久化类包中即可,在下面配置文件中配置此路径-->

<!-- package 声明一个根包,或者在实体类名字加包名 -->
<hibernate-mapping package="com.xx">
	<!-- 实体类 对应 表 -->
    <class name="Info" table="info">
    	<!-- 主键 -->
        <id name="sno" column="sno">
        </id>

        <!-- 非主键 -->
        <property name="sname" column="SNAME" >
        </property>
    </class>

</hibernate-mapping>

5....书写一个配置文件,作用是存储链接数据库与映射文件的一些属性。。其方法同映射文件,找一个修改或者使用插件自动生成

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--文件名字为hibernate.cfg.xml 需要存放在src根目录下-->
<hibernate-configuration>
	<session-factory>
		<!-- 数据库连接配置 -->
		<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<property name="connection.username">xxx</property>
		<property name="connection.password">xxxx</property>
		<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property><!--连接方言,寻找属于自己的数据库类,可以选择低版本-->
		<property name="show_sql">true</property><!--控制台输出sql语句-->
		<!-- 加载所有映射(映射文件不止一个) -->

		<mapping resource="com/xx/Info.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

6.....已经配置完成,然后测试一下(插入操作)

public void add(){
		Info info = new Info();
		info.setSno("21");
		info.setSname("张三sh");
		//获取加载配置文件的管理类对象
		Configuration config = new Configuration();
		config.configure(); //加载
		//创建session的工厂对象
		SessionFactory sf = config.buildSessionFactory();
		//创建session 一个会话(与数据库连接的会话)
		Session session = sf.openSession();
		//开启事务
		Transaction ts = session.beginTransaction();
		//执行语句(这是插入语句)
		session.save(info);
		//提交事务
		ts.commit();
		//关闭session
		session.close();
		//关闭session工厂对象
		sf.close();
	}

7...运行后 控制台可输出一个插入语句,然后进入数据库查看一下,是否插入成功。。。。。

-----这只是基本的测试是否成功,至于其他方法,继续测试即可,这里只列举简单的增删改查方法

  1.插入为上边代码

  2.查询方法,以主键查询

//以主键查询 get方法
    Info info = (Info)session.get(Info.class,"1");
    System.out.println(info.getSno());
    System.out.println(info.getSname());
//输出结果
Hibernate: select info0_.sno as sno0_0_, info0_.SNAME as SNAME0_0_ from info info0_ where info0_.sno=?
1
张三

//以主键查询 load方法
    Info info = (Info)session.load(Info.class,"1");
    System.out.println(info.getSno());
    System.out.println(info.getSname());
//输出结果
1
Hibernate: select info0_.sno as sno0_0_, info0_.SNAME as SNAME0_0_ from info info0_ where info0_.sno=?
张三

      注意:通过对比get与load方法,load方法是延迟执行sql代码,节省系统资源,除了主键,当查询其他属性字段时,才调用sql语句

  3.删除方法 delete

 

Info info = new Info();
info.setSno("24");

session.delete(info);

//输出结果
Hibernate: select info_.sno, info_.SNAME as SNAME0_ from info info_ where info_.sno=?
Hibernate: delete from info where sno=?

      注意:通过执行结果,可以看出,删除操作是先通过主键查询,然后执行删除操作

  4.修改方法 update

Info info = new Info();
info.setSno("24");

session.update(info);

//输出结果
Hibernate: update info set SNAME=? where sno=?

    注意:通过输出sql语句可以看出,如果持久化对象不设定字段值时,它也需要set,所以会传递null,所以更改时需要,主要各个字段的赋值

   

  

时间: 2025-01-15 13:57:08

hibernate基本配置与简单增删改查的相关文章

【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 前面两篇博客已经将Hibernate的基础知识讲解得差不多了,差不多到写实例的时候了. 本篇只用hibernate进行单表的增删改查. 应用Hibernate,对students表进行增删改查. service层和DAO层,我都是直接写实现类了(因为这里主要是演示一下Hibernate的使用),如果是开发项目,注意一定要写接口! 准备数据库: 首先准备一个students表: cr

kendoUI 简单增删改查

1  目前学习主要基于kendoUI英文API文档(http://docs.telerik.com/kendo-ui/introduction) 2  在已经搭建的MVC+EF+kendo UI的基础上实现Kendo UI增删改查功能 3 增删改查代码示例: 3-1:主要展示前台实现代码,因为后台代码不是唯一,可自行配置,返回JSON数据 3-1:html代码如下 3-1-1:查询和列表展示 HTML代码,列表展示只需要一个div标签 ,如下(div id="grid"><

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库 大概步骤如下5步: 1.创建项目(Asp.net Core 2.1项目) 2.项目使用EF Core 3.建立实体 4.生成迁移文件(生成数据库) 5.使用VS工具生成视图.控制器代码 示例代码下载  https://github.com/ZhMartincheng/NetCoreDemo.git 1.创建项目(Asp.net Core 2.1项目) 选择.net core 版本2.1 基础项目创建成功 2.项目使用E

[EF]使用EF简单增删改查

目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6. 实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术.是微软的一个ORM框架. 什么是O/R Mapping 广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换. 狭义上,OR

Linq to SQL 简单增删改查

Linq to SQL 简单增删改查 用Linq大大减少了对数据库的一般操作所需的编码量. 运行下面事例之前,首先建一个叫做Alien的数据库表. CREATE TABLE [dbo].[Aliens](    [Id] [int] IDENTITY(1,1) NOT NULL primary key,    [Name] [nchar](10) NULL,) 建一个console项目,在项目里添加一个Linq To Sql类文件(.dbml以及两个附属文件),把Alien表从服务器资源管理器拖

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

Hibernate之API初识及增删改查实现

声明:关于hibernate的学习.非常大一部分东西都是概念性的. 大家最好手里都有一份学习资料,在我的博文中.我不会把书本上的概念一类的东西搬过来.那没有不论什么意义.关于hibernate的学习,我主要是通过演示项目让大家加深一些概念的理解,同一时候,也是为了让大家深层次的理解hibernate.而不仅仅是单纯的停留在概念上,假设仅仅是单纯的理解一些概念性的东西.到最后你们肯定会一无所获.并且过段时间就会忘记.所以以后的hibernate的学习.希望大家多看下演示项目.下载下来部署上演示看看

idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD

在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/blog/3007984 工作环境: Windows 10 jdk8(1.8) IntelliJ IDEA spring 4 和 springMVC MySQL 5.7 maven 3.3 mybatis 3.4 DBCP Tomcat 8.5 项目上传到了Github方便查看:https://gith

1.hibernate七步走完成增删改查

一.hibernate框架介绍如下 1.框架=模板 2.Hibernate是对象模型与关系数据库模型之间的桥梁 3.hibernate持久化概念 什么是ORM ORM是对象关系映射,是一种数据持久化操作(增删改查), 它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过javabean对象去操作数据库中数据. 4.hiberante概念 hibernate就是采用orm对象关系映射技术的持久化开发框架. 5.hibernate优缺点及使用场合 1.优点 hibernate很强大