Mybatis环境搭建

1、开发环境

IDE:IntelliJ IDEA 2022.2.1 (Ultimate Edition)

构建工具:maven 3.6.1

MySQL版本:MySQL 5.7

MyBatis版本:MyBatis 3.5.14

2、工程创建

创建一个Maven工程giser-java-mybatis-demo

基础依赖如下:

    	<!-- 设置打包方式为jar -->
    	<packaging>jar</packaging>
    
        <properties>
            <maven.compiler.source>17</maven.compiler.source>
            <maven.compiler.target>17</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
          	<!-- mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.14</version>
            </dependency>
          	<!-- mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.33</version>
            </dependency>
          	<!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
                <scope>test</scope>
            </dependency>
            <!-- log4j日志 -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
        </dependencies>

3、配置文件

主要用来配置数据库连接环境及Mybatis全局配置信息。

核心配置文件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">
    <!--
    核心配置文件中的标签必须按照固定的顺序:
    properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?
    -->
    <configuration>
        <!--引入properties文件,此时就可以${属性名}的方式访问属性值-->
        <properties resource="jdbc.properties"></properties>

	    <typeAliases>
	        <!--
	        typeAlias:设置某个具体的类型的别名
	        属性:
	        type:需要设置别名的类型的全类名
	        alias:设置此类型的别名,若不设置此属性,该类型拥有默认的别名,即类名且不区分大小
	        写
	        若设置此属性,此时该类型的别名只能使用alias所设置的值
	        -->
	        <!--<typeAlias type="com.giser.mybatis.bean.User"></typeAlias>-->
	        <!--<typeAlias type="com.giser.mybatis.bean.User" alias="abc">
	        </typeAlias>-->
	        <!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写-->
	        <package name="com.giser.pojo"/>
	    </typeAliases>
      
        <!--
            environments:设置多个连接数据库的环境
            属性: default:设置默认使用的环境的id
        -->
        <environments default="dev">
            <!--
                设置连接数据库的环境
                    属性:id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,表示默认使用的环境
            -->
            <environment id="dev">
                <!--
                    transactionManager:设置事务管理方式
                        属性:
                        type:设置事务管理方式,type="JDBC|MANAGED"
                        type="JDBC":设置当前环境的事务管理都必须手动处理
                        type="MANAGED":设置事务被管理,例如spring中的AOP
                -->
                <transactionManager type="JDBC"/>
                <!--
                    dataSource:设置数据源
                        属性:
                        type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"
                        type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从
                        缓存中直接获取,不需要重新创建
                        type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建
                        type="JNDI":调用上下文中的数据源
                -->
                <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>
            <!--加载sql映射文件-->
            <!--<mapper resource="mappers/UserMapper.xml"/>-->
    
            <!--Mapper代理方式-->
            <!--
                以包为单位,将包下所有的映射文件引入核心配置文件
                注意:此方式必须保证mapper接口和mapper映射文件必须在相同的包下
            -->
            <package name="com.giser.mapper"/>
        </mappers>
    </configuration>

数据库配置文件jdbc.properties

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/db_mybatis
    jdbc.username=root
    jdbc.password=root

4、创建Mapper接口及映射文件

映射文件命名规则一般为表所对应的实体类的类名+Mapper.xml

例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml

注意: 接口文件和映射文件一般放在相同路径下,如接口在java文件的com.giser.mapper包路径下,其对应的xml文件在resources文件的相同路径下,即com.giser.mapper路径下。

创建资源文件多级路径,路径之间用/分割;创建java文件多级包路径,路径之间用.分割

  • UserMapper.java接口文件

    /**
     * @author giserDev
     * @description
     * @date 2023-11-25 00:03:10
     */
    public interface UserMapper {
   
          
          /**
           * 查询用户信息
           */
          User selectUser();
    
          /**
           * 查询用户信息
           */
          List<User> selectUserList();
    
    }
  • UserMapper.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.giser.mapper.UserMapper">
    
        <select id="selectUser" resultType="com.giser.pojo.user.User">
            select * from t_user where id = '1';
        </select>
    
        <select id="selectUserList" resultType="com.giser.pojo.user.User">
            select * from t_user
        </select>
    
    </mapper>

5、功能测试

    package com.giser.mapper;
    
    import com.giser.pojo.user.User;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    /**
     * @author giserDev
     * @description
     * @date 2023-11-25 00:19:54
     */
    public class UserMapperTest {
   
    
        @Test
        public void testUserMapper() throws Exception {
   
            // 加载核心配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            // 创建SqlSessionFactoryBuilder
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            // 创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
            // 创建SqlSession
    //        SqlSession sqlSession = sqlSessionFactory.openSession();
            // 自动提交
            SqlSession sqlSession = sqlSessionFactory.openSession(true);
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    /*        User user = userMapper.selectUser();
            System.out.println(user);*/
            List<User> userList = userMapper.selectUserList();
            System.out.println(userList);
        }
    
    }

6、日志功能

  • 基础依赖
    <!-- log4j日志 -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
  • 详细配置

log4j.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
            <param name="Encoding" value="UTF-8" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
            </layout>
        </appender>
        <logger name="java.sql">
            <level value="debug" />
        </logger>
        <logger name="org.apache.ibatis">
            <level value="info" />
        </logger>
        <root>
            <level value="debug" />
            <appender-ref ref="STDOUT" />
        </root>
    </log4j:configuration>
  • 日志信息
      DEBUG 12-09 18:05:47,530 ==>  Preparing: select * from t_user (BaseJdbcLogger.java:135) 
      DEBUG 12-09 18:05:47,531 ==> Parameters:  (BaseJdbcLogger.java:135) 
      DEBUG 12-09 18:05:47,755 <==      Total: 7 (BaseJdbcLogger.java:135) 

7、配置文件模板

在IntelliJ IDEA中,通过File-Settings或通过快捷键Ctrl+Alt+S打开Settings面板,在Editor-File and Code Templates界面,在Files页签添加文件模板,设置Name、Extension,并将文件模板内容粘贴到内容框即可。
在这里插入图片描述

相关推荐

  1. 使用IDEAMyBatis环境

    2023-12-11 01:04:02       6 阅读
  2. MyBatis二、 MyBatis

    2023-12-11 01:04:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 01:04:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 01:04:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 01:04:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 01:04:02       18 阅读

热门阅读

  1. 5.3 函数-递归与求阶乘

    2023-12-11 01:04:02       28 阅读
  2. 人工智能原理复习

    2023-12-11 01:04:02       34 阅读
  3. 第9节:Vue3 指令

    2023-12-11 01:04:02       34 阅读
  4. C#动态调用C++DLL中的函数

    2023-12-11 01:04:02       37 阅读
  5. ts中type和interface类型声明的区别

    2023-12-11 01:04:02       41 阅读
  6. harmonyOS学习笔记之状态修饰器@state,@prop,@link

    2023-12-11 01:04:02       30 阅读
  7. 排列游戏 --- 动态规划 --- 题解

    2023-12-11 01:04:02       37 阅读