首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不使用hibernate5.1.4和spring 4.3.4创建SessionFactory

SessionFactory是Hibernate框架中的一个重要概念,用于创建和管理Hibernate的Session对象。Session是Hibernate与数据库交互的核心对象,通过SessionFactory可以获取Session对象来进行数据库操作。

不使用hibernate5.1.4和spring 4.3.4创建SessionFactory,可以选择使用纯Hibernate的方式来创建SessionFactory。以下是一个示例:

  1. 导入所需的Hibernate依赖包,包括hibernate-core、hibernate-entitymanager等。
  2. 创建一个Hibernate配置文件,例如hibernate.cfg.xml,配置数据库连接信息、映射文件等。示例配置如下:
代码语言: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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydatabase</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        
        <!-- 映射文件配置 -->
        <mapping class="com.example.entity.User"/>
        
        <!-- 其他配置 -->
        ...
    </session-factory>
</hibernate-configuration>
  1. 在代码中使用Configuration类来读取配置文件并创建SessionFactory对象。示例代码如下:
代码语言:java
复制
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    static {
        try {
            // 读取配置文件
            Configuration configuration = new Configuration().configure();
            
            // 创建SessionFactory
            sessionFactory = configuration.buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
  1. 使用SessionFactory获取Session对象进行数据库操作。示例代码如下:
代码语言:java
复制
import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserDao {
    public void save(User user) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = null;
        
        try {
            tx = session.beginTransaction();
            session.save(user);
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }
    
    // 其他数据库操作方法
    ...
}

这样就可以通过纯Hibernate的方式创建SessionFactory,并使用Session对象进行数据库操作。请注意,以上示例仅为演示目的,实际使用时需要根据具体情况进行配置和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Spring BootKotlin创建RESTfull API

Gradle,但是需要先安装Gradle(https://gradle.org/install/) 如果没有选择 使用本地 Gradle 项目创建完成之后Gradle的包需要下载,这个时间有点长,以前做...项目创建完成之后会生成一个 Gradle文件 build.gradle settings.gradle, settings.gradle文件我们暂且不管,先看看 build.gradle文件: group...我们使用Kotlin 调用Java的Spring AOP框架库,需要类为 open(可被继承实现),而Kotlin 类函数都是默认 final 的,这样我们需要为每个类函数前面加上open修饰符。...例如,当我们使用 Spring 时,就不需要打开所有的类,跟我们在Java中写代码一样,只需要用相应的注解标注即可。...name=quanke.name 输出: 那么恭喜你,一个kotlin spring boot的web服务就这么搞定了。。。

1.5K30

如何使用 Spring Boot MySQL 创建 Todo List API?

如何使用 Spring Boot MySQL 创建 Todo List API? Spring Boot构建在spring之上,包含了spring的所有特性。...Spring Boot 是一个基于微服务的框架,在其中创建一个可用于生产的应用程序只需很少的时间。在本文中,我们将使用 Spring Boot MySQL创建一个简单的待办事项列表应用程序。...有关 Spring Boot 的基础知识。 有关使用 SpringBoot 创建 REST API 的基础知识。 要在 Spring Boot 中创建应用程序,请确保您已清除前面列出的所有概念。...Web, Spring Data JPA, MySQL Driver 第 1 步: 首先进入spring初始化程序并使用下面给出的以下数据创建一个新项目: 现在单击“生成” ,将下载一个.zip文件...id 详细信息更新任务 PUT /api/v1/tasks/id -> 使用给定的 id 详细信息更新任务 从数据库中删除给定 id 的任务 DELETE /api/v1/tasks/id ->

38020
  • 为什么SpringIDEA推荐使用@Autowired注解,有哪些替代方案?

    引言在使用Spring框架JetBrains IDEA集成开发环境(IDE)进行Java开发时,你可能经常会遇到@Autowired注解。...@Autowired是Spring框架中用于实现依赖注入的核心注解之一。然而,近年来,SpringIDEA都不再推荐使用@Autowired注解,并提出了更好的替代方案。...本文将详细分析为什么SpringIDEA推荐使用@Autowired注解,并介绍这些替代方案。图片1....综上所述,使用@Autowired注解的代码可读性维护性较差,这是SpringIDEA推荐使用@Autowired注解的主要原因之一。2....通过在类的构造函数中直接声明依赖的实例,可以提供更清晰明确的代码结构。而且,构造函数注入可以保证对象在创建时所有必需的依赖都已经被注入,避免了空指针异常等运行时错误。

    1.2K40

    【Java Spring Cloud 实战之路】- 使用Nacos网关中心的创建

    前言 在上一节中,我们创建了一个项目架构,后续的项目都会在那个架构上做补充。 1. Nacos 1.1 简介 Nacos可以用来发现、配置管理微服务。...Nacos用来更敏捷容易地构建、交付管理微服务平台。Nacos是构建以”服务“为中心的现代应用构架(例如微服务范式、云原生范式)的服务基础设置。 也就是通常我们所说的配置中心和服务发现中心。 ?...1.2 搭建和启动 Nacos目前版本不支持以Spring boot的形式创建服务,必须以一个Java包的形式单独运行或者以Docker服务的形式运行,我们大概讲解一下本地运行。...version/nacos/bin 启动: Linux/Unix/Mac 启动命令(standalone代表着单机模式运行,非集群模式): sh startup.sh -m standalone 如果您使用的是...bootstrap.yml: spring: application: name: gateway yml 是Spring 的一种配置文件格式,其中名称有applicationbootstrap

    87840

    如何使用 Spring RabbitMQ 创建一个简单的发布订阅应用程序?

    原标题:Spring认证中国教育管理中心-了解如何使用 Spring RabbitMQ 创建一个简单的发布订阅应用程序。...(内容来源:Spring中国教育管理中心) 本指南将引导您完成设置发布订阅消息的 RabbitMQ AMQP 服务器以及创建 Spring Boot 应用程序以与该 RabbitMQ 服务器交互的过程...注册监听器并发送消息 Spring AMQPRabbitTemplate提供了使用 RabbitMQ 发送接收消息所需的一切。但是,您需要: 配置消息侦听器容器。...Spring Boot 会自动创建连接工厂 RabbitTemplate,从而减少您必须编写的代码量。...您刚刚使用 Spring RabbitMQ 开发了一个简单的发布订阅应用程序。您可以使用Spring RabbitMQ做比这里更多的事情,但本指南应该提供一个良好的开端。

    1.8K20

    Mybatis SqlSessionTemplate 源码解析

    但是与Spring集成以后,Spring提供了一个全局唯一的SqlSessionTemplate示例 来完成 DefailtSqlSession的功能,问题就是:无论是多个dao使用一个 SqlSessionTemplate...(1)首先,通过如下代码创建代理类,表示创建 SqlSessionFactory的代理类的实例,该代理类实现 SqlSession接口,定义了方法拦截器,如果调用代理类实例中实现 SqlSession接口定义的方法...); //如果holder不为空,且当前事务同步 if (holder !...(holder, sessionFactory)); //设置当前holder当前事务同步 holder.setSynchronizedWithTransaction(true...,这个模式可以说是一种经典模式,其实紧紧在Mybatis当中使用广泛,Spring的事物,AOP ,连接池技术 等技术都使用了代理技术。

    1K60

    从源码的角度解析Mybatis的会话机制

    这是我们在平常开发中都习以为常的常识了,但我却没有从原理的角度给钟同学分析,导致钟同学茶饭思,作为老司机的我,感到深深的自责,于是我暗自下定决心,要给钟同学一个交代。...因此,SqlSession并不是线程安全,每个线程都应该有它自己的 SqlSession 实例,千万不能将一个SqlSession搞成单例形式,或者静态域实例变量的形式都会导致SqlSession出现事务问题...TransactionFactoryDataSource,并创建一个Transaction连接管理对象; 创建Executor对象(SqlSession只是所有操作的门面,真正要干活的是Executor...,眼神空洞地望着我,问我spring整合mybatismybatis单独使用是否有区别,其实没区别,区别就是spring封装了所有处理细节,你就不用写大量的冗余代码,专注于业务开发。...)); holder.setSynchronizedWithTransaction(true); // 会话使用次数+1 holder.requested();

    1.6K21

    SqlSessionTemplate是如何保证MyBatis中SqlSession的线程安全的?「建议收藏」

    如下: 二、SqlSessionTemplate是如何使用DefaultSqlSession的 而在我们开发的时候肯定会用到Spring,也会用到mybatis-spring框架,在使用MyBatis...但是与Spring集成以后,Spring提供了一个全局唯一的SqlSessionTemplate对象来完成DefaultSqlSession的功能,问题就是:无论是多个Dao使用一个SqlSessionTemplate...session = sessionFactory.openSession(executorType); //将新创建的SqlSessionHolder对象注册到TransactionSynchronizationManager...其实通过上面的代码我们可以看出Mybatis在很多地方都用到了代理模式,代理模式可以说是一种经典模式,其实紧紧在这个地方用到了代理模式,Spring的事物、AOP、Mybatis数据库连接池技术、MyBatis...那么问题来了: 1、为什么mybatis-spring框架中直接使用线程安全的SqlSessionManager(SqlSessionFactory它是线程安全的)而是使用DefaultSqlSession

    1.1K10

    钟同学,this is for you!

    这是我们在平常开发中都习以为常的常识了,但我却没有从原理的角度给钟同学分析,导致钟同学茶饭思,作为老司机的我,感到深深的自责,于是我暗自下定决心,要给钟同学一个交代。...因此,SqlSession并不是线程安全,每个线程都应该有它自己的 SqlSession 实例,千万不能将一个SqlSession搞成单例形式,或者静态域实例变量的形式都会导致SqlSession出现事务问题...TransactionFactoryDataSource,并创建一个Transaction连接管理对象; 创建Executor对象(SqlSession只是所有操作的门面,真正要干活的是Executor...,眼神空洞地望着我,问我spring整合mybatismybatis单独使用是否有区别,其实没区别,区别就是spring封装了所有处理细节,你就不用写大量的冗余代码,专注于业务开发。...)); holder.setSynchronizedWithTransaction(true); // 会话使用次数+1 holder.requested();

    66040

    Hibernate【与Spring整合】

    前言 前面已经学习了如何使用Spring与Struts2进行整合,本博文主要讲解如何使用Spring对Hibernate进行整合 SpringHibernate整合的关键点: SessionFactory...对象交给Spring创建 Hibernate的事务交给Spring进行管理 ---- SpringHibernate整合步骤 引入jar包 连接池/数据库驱动包 Hibernate相关jar Spring...环境 首先,我们为userDao、userService使用Spring创建对象,以及添加对象的依赖关系,看看Spring的环境是否成功 创建UserDao实例--->@Repository @Repository...这里写图片描述 ---- 使用Spring创建SessionFactory对象 Spring与Hibernate整合的关键点之一就是使用Spring创建SessionFactory对象。...其中又有三种方式来创建SessionFactory 直接加载hibernate主配置文件 <!

    72040

    SSH 框架总结与整合 | Spring学习笔记

    Action 访问路径:创建 struts.xml 配置文件,文件名称位置 ( Src 目录 ) 固定。 访问 Action 的多个方法:使用 通配符方式 配置。...使用 ServletContext 对象监听器实现 在服务器启动时,加载 Spring 配置文件,创建对象; 配置 Spring 的监听器; 指定 Spring 配置文件位置....且把 SessionFactory 对象创建交给 Spring 管理。 Spring 会在服务器启动的时候就创建 SessionFactory 对象。...SSH 整合演示 Struts2 && Spring 导入相关文件的 jar 包 action的创建 创建核心配置文件,配置 struts.xml applicationContext.xml 最终完成后的代码文件...-- | Class 属性值写目标 Action 的全路径,原因是防止二次创建对象 | 引入 Spring 相对应 Action 的 Bean 标签 ID

    74120

    spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法 方法一: 1、在Spring的applicationContext.xml中配置bean <!...如果配置了TranactionManager并且通过@Transactional或者声明的方式配置的事务边界,那么Spring会在开始事务之前通过AOP的方式为当前线程创建Session,此时调用getCurrentSession...然而,产生以上异常的原因在于Spring提供了自己的CurrentSessionContext实现,如果我们不打算使用Spring,而是自己直接从hibernate.cfg.xml创建SessionFactory...,当Hibernate与Spring集成时,将使用该SessionContext,故此时调用getCurrentSession()的效果完全依赖于SpringSessionContext的实现。...在Spring使用Hibernate,如果我们配置了TransactionManager,那么我们就不应该调用SessionFactory的openSession()来获得Sessioin,因为这样获得的

    73620

    SSH框架完全整合 整合SpringHibernate:Spring整合Struts2

    Spring整合struts2需要导入Spring-webstruts2-spring-plugin jar包,不要丢掉。...数据库jar驱动jar包,根据自身使用的数据库进行选择 因为我这里使用Spring对事务的管理,所以还要导入事务的jar包,spring -jdbc的jar包,spring-orm,Aspectj的jar...(二)在Struts2中,我们通过自己在Struts2的主配置文件中指定对应请求的Action的全限定类名,Struts2Spring整合则是将Action的创建交给了Spring,由Spring来管理...,而是使用Spring注入的方式为我们程序获取session,具体的SessionFactory配置,将在后面的Spring配置文件给出。...②设置一个监听器,监听当web容器创建的时候,即创建我们的Spring容器,这样我们不再需要自己加载Spring的主配置文件。

    2.5K50

    Hibernate_day01总结

    :Spring框架中提供的持久层的解决方案. 1.3.5 常见的Hibernate的版本: Hibernate3.x Hibernate4.x 1.4 Hibernate的快速入门: 1.4.1...(测试) * update :如果有表,使用原来的表,如果没有表.创建一个新的表.而且更新表结构. * validate :如果没有表,不会创建表.只能使用原有表.校验映射文件与表是否正确....自然主键代理主键: 自然主键 :创建一个人员表.人员有一个身份证号唯一标识.使用身份证号作为表的主键.....不能再多线程环境下使用. identity : (short,int,long)对MYSQL,MS SQL,DB2这种数据库生效(short int long).对Oracle生效.采用的是数据库的自动增长的机制.... sequence : (short,int,long)对DB2,Oracle生效.对MYSQL MSSQL生效. native : (short,int,long)本地策略.根据底层的数据库自动选择使用

    1.3K90
    领券