hibernate02环境的搭建
2021-06-21 12:05
标签:字段 不一致 rac word doc dtd ges star url
hibernate: 持久层的框架!
是一个开放源代码的对象关系映射框架(ORM)!之前我们访问数据库使用JDBC!
对JDBC进行了轻量级的对象封装!是一个全自动ORM框架!(底层可以自动生成sql语句)!
使用面向对象的思想来操作数据库!
创建一个java项目

引入需要的hibernate需要的jar包以及连接数据库需要的驱动包




把jar包放入项目中并引用

创建对应的学生类

/**
* 学生的实体类
*/
public class Student {
private Integer id;
private Integer age;
private String name;// 和数据库中不一致 (sname)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(Integer id, Integer age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [id=" + id + ", age=" + age + ", name=" + name + "]";
}
}

创建对应的数据库中的学生表

找到对应mapping映射文件,放在和实体类相同的包下!并修改其中的内容


修改Student.hbm.xml文件之后的内容


找到hibernate核心的配置文件并修改内容

修改后的hibernate.cfg.xml文件内容

jdbc:oracle:thin:@localhost:1521:orcl t10 t10 oracle.jdbc.OracleDriver org.hibernate.dialect.Oracle9Dialect true true

创建对应的测试类

package cn.bdqn.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import cn.bdqn.bean.Student;
/**
*
* @author 小豆腐
* 以后的你,会感谢现在努力的自己!努力!坚持!不放弃!
*
* hibernate核心的
* 1个类
* 01. 类 Configuration !对核心配置文件的读取!
* 5个接口
* 01. SessionFactory:负责初始化hibernate需要的参数!在程序中有一个就够了!之后我们会写成单例模式!
* 02. Session:不是我们的HttpSession(用户session)! 我们hibernate的session
* 是用来操作对象(增删改查)!创建事务的对象!我们现在使用的session不是线程安全的!
* 03. Transaction :进行事务的操作!
* 04. Query :hibernate中查询的接口(sql , hql)
* 05. Criteria :和Query相似!但是做了一些封装!
*/
public class StudentTest {
// 新增学生信息
@Test
public void addStudent() {
/**
* 01.读取核心配置文件 因为我们需要的信息都在这个核心配置文件中(连接数据库的四要素,映射文件)
* configure()底层默认去src下面查询了hibernate.cfg.xml文件
*/
Configuration configuration = new Configuration().configure();
// 02.创建sessionFactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 03.打开session
Session session = sessionFactory.openSession();
// 04.开启事务
Transaction transaction = session.beginTransaction();
// 05.创建一个Student对象
Student student = new Student(400, 50, "小黄");
// 06.持久化操作
session.save(student);
// 07.提交事务 的 会产生sql语句
transaction.commit();
// 08.关闭session
session.close();
}
// 新增学生信息
@Test
public void addStudent2() {
/**
* 01.读取核心配置文件 因为我们需要的信息都在这个核心配置文件中(连接数据库的四要素,映射文件)
* configure()底层默认去src下面查询了hibernate.cfg.xml文件
*/
Configuration configuration = new Configuration().configure();
// 02.创建sessionFactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 03.打开session
Session session = sessionFactory.openSession();
// 04.开启事务
Transaction transaction = session.beginTransaction();
// 05.创建一个Student对象
Student student1 = new Student(50, 50, "小黄2");
session.save(student1);
Student student2 = new Student(60, 50, "小黄2");
session.save(student2);
Student student3 = new Student(7, "小黄2"); // 没有手动的给主键赋值,会抛出异常
session.save(student3);
/**
* 07.提交事务
* student1 和student2 没有问题
* 但是student3 报错了
* 那么事务还会提交吗? 不会! ACID
一致性: 原子性: 隔离性: 永久性:
*
* 如果说 每个save()都会产生sql语句,与数据库产生交互! 这样数据库的压力大!
* 怎么减轻?
* 在commit()的时候,把之前的sql语句一起发送给数据库执行!
*/
transaction.commit();
// 08.关闭session
session.close();
}
}

hbm2ddl:属性值

true true update

小结

hibernate: 持久层的框架!
是一个开放源代码的对象关系映射框架(OMR)!之前我们访问数据库使用JDBC!
对JDBC进行了轻量级的对象封装!是一个全自动ORM框架!(底层可以自动生成sql语句)!
使用面向对象的思想来操作数据库!
Student 实体类
Student.hbm.xml mapping(映射文件)
hibernate.cfg.xml:是整个hibernate框架的核心配置文件!
01.管理mapping文件
02.整个hibernate环境的配置
03.连接数据库的四要素
sql的四种语言:
DDL:数据定义语言
create alter drop truncate
DML: 数据操作语言
select insert update delete
DCL: 数据控制语言
grant revoke
TCL: 事务控制语言
savepoint
rollback
update
oracle数据库创建序列
create sequence sq_student_id
minvalue 1
maxvalue 9999999999
start with 10
incrment by 1
cache 20;
hibernate02环境的搭建
标签:字段 不一致 rac word doc dtd ges star url
原文地址:http://www.cnblogs.com/HHR-SUN/p/7181959.html
上一篇:php 单例模式
下一篇:网页制作会用到的图片格式有哪些?