hibernate以及利用hibernate对数据库进行简单的增删查改

1.什么是hibernate

Hibernate是连接Java应用程序和关系型数据库的框架,能够建立对象模型和关系数据模型之间的映射,是一种自动ORM框架,是对JDBC API的封装,是JDBC轻量级封装框架。

所需jar包

在这里插入图片描述
持久化类就相对实体类一样,每一个持久化类就要对应着一个配置文件,每一个项目要有一个hibernate的配置文件。
2.hibernate配置文件由三到四部分组成
1.指定文件类型(这个可以在在这里插入图片描述里的org.hibernate最后的fionfiguration.dtd文件里找到)在这里插入图片描述
2.主要的配置信息
在这里插入图片描述
3.选择性配置
在这里插入图片描述
4.映射文件(也就是之前说的持久化类的配置文件)
在这里插入图片描述
4.持久化类的配置文件,即映射文件(表对类,记录对对象,列对属性)
在这里插入图片描述
1)package指持久化类所在的包名
2)在class中name为持久化类名,table数据库对应的表名,往往这两个名字都是对应相同的。
3)id中的name指主键,其后面的type为类型。一般在id里还会由其他标签字段:column对应着表中的字段,generator是指定主键的生成方式:native可以自动的选择合适的标识符生成器;increment会先自动搜寻表中最大的id然后在此基础上加一,但是不适合集群环境;identity是由底层数据库提供的自增长方式来生成;sequence采用数据库提供的序列方式,适用于Oracle;assigned是由外部来定义主键的,即由代码开发人员来定义: 在这里插入图片描述
5)property子元素,是除了主键以外的属性字段
在这里插入图片描述

工具类

在util工具包中创建HibernateUtil工具类
该工具类中的大部分方法和属性都设成静态
第一步:实例化会话工厂Sessionfactory

private static SessionFactory sesssionFactory=null;
接下来创建StandardServletRegistry实例(标准注册服务),再创建StandardServiceRegistryBuilder实例*(标准注册服务生成器),再从hibernat.cfg.xml配置文件中读取配置信息,最后构建StandardServiceRegistry(标准注册服务)
StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure().build();

创建 SessionFactory 实例,根据标准注册服务创建一个 MetadataSources 实例, 构建元数据, 生成应用一般唯一的 SessionFactory 实例

try {
            
            sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
        } catch (Exception e) {
            // 2.4 创建失败手动释放 StandardServiceRegistry 实例
            StandardServiceRegistryBuilder.destroy(registry);
            e.printStackTrace();
        }

最后创建一个打开session会话的方法
public static Session openSession() { return sessionFactory.openSession(); }
这样工具类就算可以用了

在使用的时候呢可以先通过之前创建的一个工具类来开启一个会话Session session = HibernateUtils.getSession()l;
在使用该会话来开启一个事务Transaction tran = session.beginTransaction();
下来可以创建持久化类对象,设置持久化类对象的变量最后使用会话中的save()方法保存该对象数据,并且使用事务中的commit()方法提交该事务

Product p = new Product();
p.setId(12);
session.save(p);
tran.commit();
//最后关闭会话
if(null !=session){
session.close();
}


删除时先查找要删除的对象,在使用session.delete()方法删除

//查找主键为1的Product对象
Product p = session.load(Product.class,1);
session.delete(p);


查找时可以直接通过session.load()方法来获取的到需要查找的对象

Product p = session(Product.class,1);


需要修改时先获取到需要修改的对象设置该对象set()方法,最后在通过session.update()方法来修改

Product p = session.load(Product.class,2);
p.setName("麻辣香锅");
session.update(p);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值