mybatis oracle

2023年 8月 13日 50.3k 0

Mybatis是一个开源的Java持久化框架,它可以帮助我们通过XML或注解的方式来映射Java对象和SQL语句之间的关系,从而使得我们的代码更加简洁易懂。

而Oracle,则是一种非常流行的关系型数据库,许多企业都使用Oracle作为自己的数据库。

在实际的项目中,我曾经使用过Mybatis对接Oracle数据库,下面就来分享一下我的经验。

首先,我们需要在pom.xml中添加Mybatis和Oracle的依赖:

org.mybatis
mybatis
3.4.5

com.oracle
ojdbc8
12.2.0.1

接下来是配置Mybatis的SqlSessionFactory,我们可以定义一个MybatisConfig类:

import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@Configuration
public class MybatisConfig {
private final DataSource dataSource;
@Autowired
public MybatisConfig(@Qualifier("dataSource") DataSource dataSource) {
this.dataSource = dataSource;
}
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
return sessionFactory.getObject();
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource);
}
}

这里我们将mapper文件存放在classpath*:mapper/路径下,通过PathMatchingResourcePatternResolver来进行扫描。

接下来,我们就可以定义一个Mapper文件了,比如这里我定义了一个UserMapper.xml:

select * from users where id = #{id}

这里我们定义了一个getUserById的select语句,参数类型为int,返回值为UserEntity类型;同时我们还定义了一个userResultMap,将从数据库中查询出来的结果映射到UserEntity类中。

最后,我们就可以在业务类中使用Mybatis来查询数据了:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.mapper.UserMapper;
import com.example.entity.UserEntity;
@Service
public class UserService {
private final UserMapper userMapper;
@Autowired
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public UserEntity getUserById(int id) {
return userMapper.getUserById(id);
}
}

这里我们直接注入了UserMapper,然后调用getUserById方法即可。

综上所述,Mybatis和Oracle的结合使用非常简单,只需要添加依赖、配置SqlSessionFactory和Mapper文件,就可以在业务代码中方便地使用了。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论