new SqlSessionFactoryBuilder().build(DruidDataSource.getConnection())为什么不存在这个方法了
时间: 2024-02-15 21:02:41 浏览: 25
很抱歉,我的回答还是有误。在MyBatis中,我们可以使用DruidDataSource作为数据源,但是SqlSessionFactoryBuilder的build()方法并不支持直接传入DruidDataSource.getConnection()方法返回的Connection对象。正确的做法是,先通过DruidDataSource获取一个Connection对象,然后将它作为参数传递给SqlSessionFactoryBuilder的build()方法。代码示例如下:
```java
DruidDataSource dataSource = new DruidDataSource();
// 配置数据源
// ...
Connection connection = dataSource.getConnection();
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(new ConnectionSource() {
@Override
public Connection getConnection() throws SQLException {
return connection;
}
});
SqlSession sqlSession = sessionFactory.openSession();
```
在上述代码中,我们通过DruidDataSource获取一个Connection对象,然后将它作为参数传递给SqlSessionFactoryBuilder的build()方法。注意,在这里我们没有直接将Connection对象传递给build()方法,而是构造了一个ConnectionSource匿名内部类,并在其中实现了getConnection()方法,用于返回Connection对象。这是因为SqlSessionFactoryBuilder的build()方法需要一个实现了ConnectionSource接口的对象作为参数,而我们没有直接实现ConnectionSource接口,因此需要通过匿名内部类的方式来实现。