关于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;
拿到的是学生类的字节码
最新文章
- html img图片等比例缩放
- 浅谈JS之AJAX
- 简述UIScrollView的属性和用法
- [原创]用C++类实现单向链表的增删查和反转操作
- C#常用操作类库三(XML操作类)
- 整理grep实战文本搜索过滤技巧
- SQL的定义与使用
- C# ObjectHelper
- Kali linux2.0里Metasploit的postgresql selected, no connection问题解决
- Js 常用字符串操作 API
- scss转css的过程中 转化问题
- 如何用Python写一个每分每时每天的定时程序
- vue接口地址配一个全局的
- 大压力下Redis参数调整要点
- excel的宏与VBA入门(一)——基础概念
- 关Java的内存模型(JMM)
- java的第二个实验——JAVA面向对象程序设计
- 2-String to Integer (atoi)
- elasticserach + kibana环境搭建
- 第103天:CSS3中Flex布局(伸缩布局)详解