当前位置: 首页 > 知识库问答 >
问题:

直接从现有连接创建SqlSession

司空宗清
2023-03-14

我正在使用现有的Java代码,其中在部署的系统上有一个现有的JDBC连接池机制,并且有一个已经存在的获取JDBC连接的设置。我想利用这一点来创建MyBatis SqlSession对象,而不创建配置、数据源和其他东西

我的代码已经创建了java.sql.Connection对象,并为其提供了所需的资源。我想利用这一点,获得sqlsession对象,并从此使用MyBatis。

我不希望MyBatis管理连接池,确定使用哪个数据源等等,这可能吗?

共有1个答案

卫子平
2023-03-14

恐怕您无法避免创建configuration对象。它被内部的mybatis机器像执行者一样使用。但即使你可以,它也不会对你有多大帮助。在这种情况下,您需要自己实现大多数configuration功能,所以这样做没有意义。

您的主要目标是能够使用SQLSessionFactory.OpenSession(ConnectionConnection)方法。为此,您需要具有SQLSessionFactory。您最简单的方法是创建配置,如mybatis文档中所述:

TransactionFactory transactionFactory = new JdbcTransactionFactory();

Environment environment = new Environment("development", transactionFactory, dataSource);

Configuration configuration = new Configuration(environment);

// set properties to configuration here

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(configuration);

现在,如果您的连接池确实实现了DataSource,那么您可以直接使用它来创建环境。如果没有,则需要在池周围创建一个适配器,该适配器实现javax.sql.datasource

 类似资料:
  • 因此,我想知道做这件事的步骤。 我的理想是由kafka Connect创建与表相对应的主题,然后再由我声明(使用KSQL)创建视图。 虽然我在这里描述的一开始听起来是可行的,但我对数据有一个问题主题中数据的结构(模式)。问题似乎是,我可能必须做一个额外的步骤,但不知道它是否可以避免或实际上是必要的。

  • 我试图在JSPlumb中创建两个endpoint之间的直线连接。当我尝试连接到endpoint时,将拖动源点,而不是创建直线连接。 这里是小提琴:http://jsfiddle.net/dutchman71/aMksZ/2/ 谢谢你的帮助。

  • 我正在尝试使用快速连接将JProfiler(10.0.1)连接到JMX端口- “另一个应用程序正在端口19002上运行。请检查您的端口配置”。 我使用的是oracle JDK jdk1.8.0_181。下面是我用于服务器启动的JXM选项。

  • AWS Direct Connect允许从我们的网络到AWS位置创建专用网络连接。 它使用802.1q VLAN,可以将其划分为多个虚拟接口,以使用相同的连接访问公共资源。 这导致网络成本降低和带宽增加。 可以根据需要随时重新配置虚拟接口。 使用AWS Direct Connect的要求 我们的网络必须满足以下条件之一才能使用AWS Direct Connect - 我们的网络应位于AWS Dir

  • 好的。所以我已经尝试将设备p2p与流连接了一周。仍然没有结果,我变得疯狂和绝望。请不要将我发送到Ray Wendderlich教程和GCD wiki或CFStream Guide,因为我已经将其冲浪到洞。 So 1)这里的变体i > 获取我的设备的Ip 在其他设备的文本字段中手动输入ip 在一个设备上初始化网络通信 错误-连接到主机。 (void)initNetworkCommunication:

  • 为了和Azure IoT设备通信,在创建设备之后会获得设备连接字符串,我们需要用这个字符串创建一个连接凭据。 请求方式: "|4|2|1|connectionString|" 参数 connectionString 设备连接字符串 返回值: "|4|2|1|1|\r" 创建成功 "|4|2|1|2|reason|\r" 创建失败 参数 reason 创建失败的原因 Arduino样例: softS