铂西Mybatis快速入门案例(IDEA-maven版)

106 阅读1分钟

 ①首先创建一个maven项目

 ②Maven项目在pom.xml中导入如下jar包

<?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>com.lsq</groupId>
    <artifactId>lsq</artifactId>
    <version>1.0-SNAPSHOT</version>

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

    <dependencies>
        <!--junit测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--pojo 偷懒-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
        <!--数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
    </dependencies>

</project>

③创建对应目录:pojo(放置实体类)、dao(编写mapper)

 ④创建一个数据库和一个表(user表【id、name】)

⑤编写数据库连接配置文件(jdbc.properties)

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test_demo1?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=lsq666

⑥编写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">
<configuration>
    <!--引入数据源-->
    <properties resource="jdbc.properties" />

    <!--重命名-->
    <typeAliases>
        <package name="com.lsq.pojo"/>
    </typeAliases>
    
    <!--数据源-->
    <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>
    </environments>

    <mappers>
        <mapper class="com.lsq.dao.UserMapper"></mapper>
    </mappers>
</configuration>

⑦编写实体类(User)

package com.lsq.pojo;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id;
    private String name;
}

⑧编写mapper和对应的xml文件(两个文件名必须一致即UserMapper和UserMapper.xml)

package com.lsq.dao;

import com.lsq.pojo.User;
//UserMapper 文件内容
public interface UserMapper {
    User FindById(Integer id);
}

 上面是mapper文件,下面是对应的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.lsq.dao.UserMapper">
    <select id="FindById" parameterType="int" resultType="com.lsq.pojo.User">
        SELECT id,name from user WHERE id=#{id}
    </select>
</mapper>

⑨Junit测试(在test文件夹下创建测试类)

 以下为测试内容:

import com.lsq.dao.UserMapper;
import com.lsq.pojo.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;

public class test1 {
    @Test
    public void test_demo(){
        try {
            //读取mybatis的核心配置文件
            InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");

            //获得工厂对象
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);

            //通过工厂创建一个会话对象
            SqlSession sqlSession = factory.openSession();

            //获得接口实现类 【动态代理模式】
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

            //通过mapper调用自定义的方法
            User user = userMapper.FindById(1);
            System.out.println(user);

            /**
             * 此处进行增删改 ...
             *
             * 然后提交事务 ...
             */
            sqlSession.commit();

            //释放资源
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上完整案例免费下载:点我下载

比上述案例较为复杂的例子:

①加入log4j:现在pom.xml文件中导入log4j的依赖,然后还需要一个log4j的配置文件。

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


log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n


log4j.appender.A = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File = D:/log.txt
log4j.appender.A.Append = true
log4j.appender.A.Threshold = DEBUG
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.appender.A.encoding=UTF-8


log4j.rootLogger=DEBUG,Console,A

②封装连接数据库获取sqlSession的步骤

package com.lsq.utils;

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 java.io.IOException;
import java.io.InputStream;

/**
 * mybatis的工具类
 */
public class MybatisUtils {
    private static SqlSessionFactory factory;
    //静态代码块 -- 类加载时就被执行,只执行一次
    static {
        try {
            //以流的形式加载配置文件
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            //构建者模式构建工厂
            factory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 返回一个sqlSession对象
     * @return
     */
    public static SqlSession getSession(){
        //工厂模式创建一个
        SqlSession sqlSession = factory.openSession();
        return sqlSession;
    }
}

 ③动态SQL、多条件查询,更多的接口方法用于测试

 该案例的完整代码:点我零积分免费下载

此篇文章适合mybatis入门,想要学习更多,点我进入mybatis中文官方文档