MyBatis中连接Oracle数据库,首先需在项目的pom.xml文件中添加Oracle的JDBC驱动依赖,如ojdbc6,然后在MyBatis的配置文件中配置数据源,指定驱动类名、URL、用户名和密码等属性,通常使用JDBC连接方式,通过Oracle提供的JDBC驱动程序实现连接
Batis连接Oracle数据库的详细步骤如下:
准备工作
- 安装Oracle数据库:确保已经安装了Oracle数据库,并启动了相关服务,可以通过Docker等方式在本地或服务器上安装Oracle数据库。
- 创建数据库表空间和用户:使用Navicat等可视化工具连接到Oracle数据库,创建表空间和用户,并为用户赋予相应的权限。
- 创建数据表:在创建好的表空间中,使用SQL语句创建需要操作的数据表。
- 下载Oracle JDBC驱动:从Oracle官方网站或其他可靠来源下载与Oracle数据库版本匹配的JDBC驱动jar包,如ojdbc6.jar或ojdbc8.jar。
项目配置
- 导入依赖
- 如果使用Maven项目管理工具,在项目的pom.xml文件中添加以下依赖:
- MyBatis核心库依赖,
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency>
- Oracle JDBC驱动依赖,由于Maven中央仓库可能没有Oracle官方的驱动,需要手动安装到本地Maven仓库后添加依赖,或者将下载的jar包放到项目的lib目录下并在pom.xml中配置系统作用域依赖,
<dependency> <groupId>oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> <scope>system</scope> <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath> </dependency>
- MyBatis核心库依赖,
- 如果使用Gradle等其他构建工具,按照相应方式添加依赖。
- 如果使用Maven项目管理工具,在项目的pom.xml文件中添加以下依赖:
- 配置MyBatis配置文件(mybatis-config.xml)
- 创建MyBatis配置文件,一般命名为mybatis-config.xml,放置在项目的资源目录下(如src/main/resources),配置文件的基本结构如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-配置环境 --> <environments default="development"> <environment id="development"> <!-配置事务管理器,这里使用JDBC事务管理器 --> <transactionManager type="JDBC"/> <!-配置数据源,这里使用POOLED连接池 --> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="your_username"/> <property name="password" value="your_password"/> </dataSource> </environment> </environments> <!-配置映射器 --> <mappers> <!-这里可以配置多个映射文件 --> <mapper resource="com/example/mapper/PersonInfoMapper.xml"/> </mappers> </configuration>
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
指定了Oracle数据库的驱动类;<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
中的URL需要根据实际的Oracle数据库地址、端口和服务名进行修改;<property name="username" value="your_username"/>
和<property name="password" value="your_password"/>
分别填写连接数据库的用户名和密码。
- 创建MyBatis配置文件,一般命名为mybatis-config.xml,放置在项目的资源目录下(如src/main/resources),配置文件的基本结构如下:
- 创建映射文件(Mapper.xml)
- 在项目中创建与数据表对应的映射文件,一般放在项目的mapper目录下,文件名通常为数据表对应的实体类名+Mapper.xml,例如PersonInfoMapper.xml,映射文件的基本结构如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.PersonInfoMapper"> <!-定义结果集映射 --> <resultMap id="BaseResultMap" type="com.example.entity.PersonInfo"> <id column="ID" property="id" jdbcType="DECIMAL"/> <result column="NAME" property="name" jdbcType="VARCHAR"/> <result column="GENDER" property="gender" jdbcType="CHAR"/> <result column="REMARK" property="remark" jdbcType="VARCHAR"/> <result column="INPUT_DATE" property="inputDate" jdbcType="DECIMAL"/> <result column="INPUT_TIME" property="inputTime" jdbcType="DECIMAL"/> </resultMap> <!-定义查询语句 --> <select id="selectAllPersonInfo" resultMap="BaseResultMap"> SELECT ID, NAME, GENDER, REMARK, INPUT_DATE, INPUT_TIME FROM PERSON_INFO </select> <!-可以根据需要定义其他增删改查操作的SQL语句 --> </mapper>
- 这里的
namespace
属性值要与接口的全限定名一致;<resultMap>
用于定义数据库字段与实体类属性的映射关系;<select>
标签定义了一个查询所有人员信息的SQL语句,id
属性是该语句的唯一标识,resultMap
属性指定了查询结果的映射方式。
- 在项目中创建与数据表对应的映射文件,一般放在项目的mapper目录下,文件名通常为数据表对应的实体类名+Mapper.xml,例如PersonInfoMapper.xml,映射文件的基本结构如下:
- 创建实体类
- 根据数据库表的结构,创建对应的实体类,对于PERSON_INFO表,创建PersonInfo类:
public class PersonInfo { private Long id; private String name; private String gender; private String remark; private Long inputDate; private Long inputTime; // 省略getter和setter方法 }
- 实体类的属性要与数据库表的字段一一对应,并且数据类型要匹配。
- 根据数据库表的结构,创建对应的实体类,对于PERSON_INFO表,创建PersonInfo类:
- 创建Mapper接口
- 创建一个与映射文件对应的Mapper接口,接口的方法要与映射文件中定义的SQL语句的id相对应,对于PersonInfoMapper.xml,创建PersonInfoMapper接口:
public interface PersonInfoMapper { List<PersonInfo> selectAllPersonInfo(); // 可以根据需要定义其他方法 }
- 这里定义了一个selectAllPersonInfo方法,用于执行查询所有人员信息的操作。
- 创建一个与映射文件对应的Mapper接口,接口的方法要与映射文件中定义的SQL语句的id相对应,对于PersonInfoMapper.xml,创建PersonInfoMapper接口:
测试连接
- 编写测试代码:在项目的测试目录下创建一个测试类,用于测试MyBatis连接Oracle数据库的功能。
import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.; import com.example.entity.PersonInfo; import com.example.mapper.PersonInfoMapper; import java.io.IOException; import java.io.InputStream; import java.util.List; public class MyBatisTest { public static void main(String[] args) throws IOException { // 加载MyBatis配置文件 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); // 创建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 打开一个SqlSession try (SqlSession sqlSession = sqlSessionFactory.openSession()) { // 获取Mapper接口的代理对象 PersonInfoMapper mapper = sqlSession.getMapper(PersonInfoMapper.class); // 调用Mapper接口的方法,执行查询操作 List<PersonInfo> personInfoList = mapper.selectAllPersonInfo(); // 遍历输出查询结果 for (PersonInfo personInfo : personInfoList) { System.out.println(personInfo); } } } }
- 运行测试代码:运行上述测试代码,如果控制台输出了数据库表中的数据,说明MyBatis成功连接到了Oracle数据库,并且能够正确执行SQL语句,如果出现异常,需要检查配置文件、映射文件、实体类、Mapper接口等是否存在
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/61213.html