mybatis怎么连接oracle数据库

mybatis怎么连接oracle数据库

MyBatis中连接Oracle数据库,首先需在项目的pom.xml文件中添加Oracle的JDBC驱动依赖,如ojdbc6,然后在MyBatis的配置文件中配置数据源,指定驱动类名、URL、用户名和密码等属性,通常使用JDBC连接方式,通过Oracle提供的JDBC驱动程序实现连接

Batis连接Oracle数据库的详细步骤如下:

mybatis怎么连接oracle数据库

准备工作

  1. 安装Oracle数据库:确保已经安装了Oracle数据库,并启动了相关服务,可以通过Docker等方式在本地或服务器上安装Oracle数据库。
  2. 创建数据库表空间和用户:使用Navicat等可视化工具连接到Oracle数据库,创建表空间和用户,并为用户赋予相应的权限。
  3. 创建数据表:在创建好的表空间中,使用SQL语句创建需要操作的数据表。
  4. 下载Oracle JDBC驱动:从Oracle官方网站或其他可靠来源下载与Oracle数据库版本匹配的JDBC驱动jar包,如ojdbc6.jar或ojdbc8.jar。

项目配置

  1. 导入依赖
    • 如果使用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>
    • 如果使用Gradle等其他构建工具,按照相应方式添加依赖。
  2. 配置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"/>分别填写连接数据库的用户名和密码。
  3. 创建映射文件(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属性指定了查询结果的映射方式。
  4. 创建实体类
    • 根据数据库表的结构,创建对应的实体类,对于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方法
      }
    • 实体类的属性要与数据库表的字段一一对应,并且数据类型要匹配。
  5. 创建Mapper接口
    • 创建一个与映射文件对应的Mapper接口,接口的方法要与映射文件中定义的SQL语句的id相对应,对于PersonInfoMapper.xml,创建PersonInfoMapper接口:
      public interface PersonInfoMapper {
          List<PersonInfo> selectAllPersonInfo();
          // 可以根据需要定义其他方法
      }
    • 这里定义了一个selectAllPersonInfo方法,用于执行查询所有人员信息的操作。

测试连接

  1. 编写测试代码:在项目的测试目录下创建一个测试类,用于测试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);
                }
            }
        }
    }
  2. 运行测试代码:运行上述测试代码,如果控制台输出了数据库表中的数据,说明MyBatis成功连接到了Oracle数据库,并且能够正确执行SQL语句,如果出现异常,需要检查配置文件、映射文件、实体类、Mapper接口等是否存在

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/61213.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月14日 16:16
下一篇 2025年7月14日 16:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN