0
点赞
收藏
分享

微信扫一扫

MyBatis连接Oracle快速入门

秀妮_5519 2023-03-07 阅读 109

数据库结构

image.png

文件路径

image.png

导入pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MyBatis</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mybatis_helloworld</module>
        <module>mybatis_parameter</module>
        <module>mybatis_resultMap</module>
        <module>mybatis_dynamicSQL</module>
        <module>mybatis_cache</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.12</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>21.9.0.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.oracle.database.nls/orai18n -->
        <dependency>
            <groupId>com.oracle.database.nls</groupId>
            <artifactId>orai18n</artifactId>
            <version>21.9.0.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

    </dependencies>
</project>

配置jdbc.properties

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scott
jdbc.password=tiger

配置 Mybatis-config.xml

<?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>

    <!-- 引入properties文件 -->
    <properties resource="jdbc.properties"/>

    <settings>
        <!-- 设置驼峰 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <typeAliases>
        <!-- 全部有默认类名 -->
        <package name="com.xy.mybatis.com.xy.mybatis.cache.pojo"/>
    </typeAliases>

    <plugins>
        <!-- 配置分页插件 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

    <!-- 配置环境 default 默认环境  -->
    <environments default="development">
        <!-- 开发环境 -->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>

        <!-- 测试环境 -->
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- mapper 路径 -->
        <package name="com.xy.mybatis.cache.mapper" />
    </mappers>
</configuration>

配置log4j.properties

#log4j.rootLogger=,Console
log4j.rootLogger=DEBUG,Console,info,stdout,debug,error
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=ERROR
log4j.logger.org.mybatis=ERROR
log4j.logger.org.springframework=ERROR
#这个须要
log4j.logger.log4jdbc.debug=ERROR
log4j.logger.com.gk.com.xy.mybatis.mapper=ERROR

log4j.logger.jdbc.audit=ERROR
log4j.logger.jdbc.resultset=ERROR
#这个打印SQL语句非常重要
log4j.logger.jdbc.sqlonly=DEBUG
log4j.logger.jdbc.sqltiming=ERROR
log4j.logger.jdbc.connection=FATAL

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t] %C.%M(%L) | %m%n

log4j.appender.info=org.apache.log4j.RollingFileAppender
log4j.appender.info.Threshold=INFO
log4j.appender.info.File=D:/logs/log4j-info.log
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.info.MaxFileSize=50MB
log4j.appender.info.MaxBackupIndex=15
log4j.appender.info.Encoding=UTF-8

log4j.appender.debug=org.apache.log4j.RollingFileAppender
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.File=D:/logs/log4j-debug.log
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.debug.MaxFileSize=50MB
log4j.appender.debug.MaxBackupIndex=15
log4j.appender.debug.Encoding=UTF-8

log4j.appender.error=org.apache.log4j.RollingFileAppender
log4j.appender.error.Threshold=ERROR
log4j.appender.error.File=D:/logs/log4j-error.log
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.error.MaxFileSize=50MB
log4j.appender.error.MaxBackupIndex=15
log4j.appender.error.Encoding=UTF-8

创建Java类

Emp类

package com.xy.mybatis.cache.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author 谢阳
 * @version 1.8.0_131
 * @date 2023/3/6 19:22
 * @description
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
}

EmpMapper类

package com.xy.mybatis.cache.mapper;


import com.xy.mybatis.cache.pojo.Emp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 谢阳
 * @version 1.8.0_131
 * @date 2023/3/6 19:25
 * @description
 */
public interface EmpMapper {
    /**
     * 根据员工id获取员工信息
     * @param id 员工id
     * @return 员工信息
     */
    Emp getEmpById(@Param("id") Integer id);

    /**
     * 获取所有员工信息
     * @return 员工列表
     */
    List<Emp> getAllEmp();
}

SqlSessionUtil工具类

package com.xy.mybatis.cache.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author 谢阳
 * @version 1.8.0_131
 * @date 2023/3/6 11:28
 * @description sqlSession工具类
 */
public class SqlSessionUtil {

    /**
     * 获取sqlSession
     * @return SqlSession
     */
    public static SqlSession getSqlSession() {
        try {
            InputStream resource = Resources.getResourceAsStream("mybatis-config.xml");
            return new SqlSessionFactoryBuilder().build(resource).openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

配置EmpMapper.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.xy.mybatis.cache.mapper.EmpMapper">
    <!-- 开启 二级缓存 SqlSessionFactory 级别-->
    <cache/>

    <select id="getEmpById" resultType="com.xy.mybatis.cache.pojo.Emp">
        select *
        from emp
        where id = #{id}
    </select>
    
    <select id="getAllEmp" resultType="com.xy.mybatis.cache.pojo.Emp">
        select *
        from emp
    </select>
</mapper>

测试连接

import com.xy.mybatis.cache.mapper.EmpMapper;
import com.xy.mybatis.cache.pojo.Emp;
import com.xy.mybatis.cache.utils.SqlSessionUtil;
import org.junit.jupiter.api.Test;

import java.util.List;

/**
 * @author 谢阳
 * @version 1.8.0_131
 * @date 2023/3/7 17:20
 * @description
 */
public class ConnectionTest {
    @Test
    public void test01() {
        EmpMapper mapper = SqlSessionUtil.getSqlSession().getMapper(EmpMapper.class);

        Emp empById = mapper.getEmpById(1);
        List<Emp> allEmp = mapper.getAllEmp();

        System.out.println("empById = " + empById);
        System.out.println("allEmp = " + allEmp);
    }
}

测试结果

image.png

举报

相关推荐

0 条评论