关于Hibemate
1.Hibernate定位
HIbernate是一款实现了ORM思想的框架
JDO
TOpLink
2.HIbernate初次解释
Hibernate:冬眠,蛰伏 和持久化有关系
将内存中data持久化到咱们的硬盘的db中。
HIbernate的作为:
3.一个简单案例:
1.构建了一个Student实体类
public class Student {
private Integer id;
//name
private String name;
//age
private Integer age;
}
2.构建一个大配置
在src根目录下书写
Hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">sb</property>
<property name="connection.password">sb</property>
<!-- 输出所有 SQL 语句到控制台。 -->
<property name="hibernate.show_sql">true</property>
<!-- 在 log 和 console 中打印出更漂亮的 SQL。 -->
<property name="hibernate.format_sql">true</property>
<!-- 方言 -->
<property name="hibernate.dialect"> org.hibernate.dialect.Oracle10gDialect</property>
<!-- 关联小配置 -->
</session-factory>
</hibernate-configuration>
3.构建小配置,和实体类对应的
Student.hbm.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.happy.entity">
<class name="Student" table="Student">
<id name="id" type="int" column="id">
</id>
<property name="name" type="string" column="name"/>
<property name="age" type="int" column="age"/>
</class>
</hibernate-mapping>
4.测试代码
对session进行探究。
Session.save(stu);
package cn.happy.test;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;
import cn.happy.entity.Student;
public class H_01Test {
@Test
public void testAdd(){
//1.1构建一个学生对象
Student stu=new Student();
stu.setAge(18);
stu.setName("2016年8月28日09:21:09训练营");
stu.setId(3);
//1.2 找到和数据库的接口 xxx========session--->sessionFactory--->configure.buildSessionFactory()
//咱们要想打通和db通道
Configuration cf=new Configuration().configure("hibernate.cfg.xml");
SessionFactory factory = cf.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
//1.3保存
session.save(stu);
tx.commit();
session.close();
}
}
-------------------------------------------------------------*************************************************
4.关于ORM
Object Relational Mapping 对象/关系 映射。
------------------------------------------------*********************************------------------------------------------------------------************************
5.用HIbernate实现删除,修改和查询
/**
* 1.1 删除学生
*/
@Test
public void delTest(){
Session session = HibernateUtil.getSession();
Student stu=new Student();
stu.setId(2);
Transaction tx = session.beginTransaction();
session.delete(stu);
tx.commit();
HibernateUtil.closeSession();
System.out.println("del ok!");
}
/**
* 1.2 修改学生
*/
@Test
public void updateTest(){
Session session = HibernateUtil.getSession();
//不被上下文跟踪对象
/*Student stu=new Student();
stu.setId(3);
stu.setName("美男子");*/
//方式二:如何用呗上下文跟踪的方式
//检索出一条记录,一个实体对象
Student stu= (Student)session.load(Student.class,3);
stu.setName("美女");
Transaction tx = session.beginTransaction();
session.update(stu);
tx.commit();
HibernateUtil.closeSession();
System.out.println("update ok!");
}
6.反射
Class 一个类型的类型
Class clazz= Student.class;
拿到的是学生类的字节码
关于Hibemate的更多相关文章
- 2016年7款最流行的Java框架
虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...
- 现在企业开发时,Java所用到的主流框架有哪些?
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇.毫无疑问,Java是目前最热门的编程语言之一.随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到 ...
- Java基础学习(一)---Java初识
一.Java介绍 关于Java的诞生和发展网上比较多,在此就不再赘述了,可以参考http://i.cnblogs.com/EditArticles.aspx?postid=4050233. 1.1 J ...
- 现在的企业用到的Java开发主流框架有哪些
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇.毫无疑问,Java是目前最热门的编程语言之一.随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到 ...
- Java开发MIS系统需要的技术及其作用
1.后台框架部分,常用spring.struts2(Struts2框架,提供了一种基于MVC体系结构的工程序的开发方法,具有组件模块化.灵活性和重用性等优点,使基于MVC模式的程序结构更加清晰,同时也 ...
- Java web相关内容
我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...
- 分享几款流行的Java框架
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,下面分享几个个人认为还不错的Java框架,以及各自的优缺点,希望能对大家有帮助. ...
- 初识XML
前言 前期敲机房的时候,总是写配置文件,后来到ASP.NET学习中也遇到了XML,可是什么是XML呢,它又是用来干什么的呢?请听我细细道来. 内容 定义 (eXtensible Markup Lang ...
- Spring学习之旅(十二)--持久化框架
对于本职工作来说 JDBC 就可以很好的完成,但是当我们对持久化的需求变得更复杂时,如: 延迟加载 预先抓取 级联 JDBC 就不能满足了,我们需要使用 ORM框架 来实现这些需求. Spring 对 ...
随机推荐
- XMPP基础
概要 1.即时通讯技术简介2.XMPP诞生的由来3.XMPP特点4.XMPP的基本结构5.XMPP工作原理6.XMPP的优缺点7.OSI七层模型8.IP地址.端口号.传输协议9.TCP和UDP的区别1 ...
- Delphi 用ToolButton和MonthCalendar实现DateTimePicker的功能
效果图如下: 实现平台:xp xe2,其中以上功能的实现,核心主要是参考了万一老师的资料,连接:http://www.cnblogs.com/del/archive/2011/05/12/204411 ...
- Hive学习之三 《Hive的表的详解和应用案例详解》
一.Hive的表 Hive的表分为内部表.外部表和分区表. 1.内部表,为托管表. 2.外部表,external. 3.分区表. 详解: 内部表,删除表的时候,数据会跟着删除. 外部表,在删除表的时候 ...
- jQuery 知识积累
1.select下拉框设置选中项 //设置下拉框第一项为选中项$("#selectId option:first").prop("selected", 'sel ...
- winform 剔除空格与换行显示
string strTeachingPlan = this.txtTeachingPlan.Text.ToString().Trim(); string[] maarr = strTeachingP ...
- 逻辑很重要:一句sql语句的事,自己却想了半天,绕了个大弯子
问题:系统升级后审核认证信息分别写入两个表,现在需要链接用户表和相应的新旧审核表获取字段值? 钻进胡同里:一直纠结于升级之后的会员信息从新表查,升级之前的数据从旧表查,纠结于根据时间戳分条件判断, 其 ...
- 正则如何匹配div下的所有<li>标签?
<?php header('Content-Type:text/html;charset=utf-8'); $str = '<div class="c1s"> & ...
- python -- 函数传参
一.参数传入规则 可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple: 关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict: 1. 传入可变参数: def ca ...
- linux c信息验证程序(分享)
程序来源是Hirst First c,程序很简单,但却是很好的说明了一个检测信息是否被串改的原理.下载程序的时候是否都有看到提供md5效验值的呢,原理其实和这个小程序相似:就是对程序的内容进行某种计算 ...
- 省队集训day6 A
code: #include<cstdio> #include<iostream> #include<cmath> #include<cstring> ...