Mybatis entry (a) environment to build

MyBatis is an excellent persistence framework that supports custom SQL, stored procedures and advanced mappings. MyBatis avoids almost all JDBC code and manual setting parameters and obtaining the result set. MyBatis can use simple XML or annotation to configure and map the native information, interfaces and Java POJOs (Plain Ordinary Java Object, ordinary Java Objects) to database records in.

 

1, personal feeling somewhat safe to go along with a number of official documents

1.1, ready maven repository, Mysql5.7, and IDEA

  Preparation maven repository:

 

<dependencies>
        <!--Mysql驱动-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>

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

        <!--junit-->
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

 

There are resources filter:

<-! Maven convention because of his greater than the configuration, you could meet us after we write the configuration file can not be processed or entry into force of the solution -> 
    < Build > 
        < Resources > 
            < Resource > 
                < Directory > src / main / Java </ Directory > 
                < Includes > 
                    < the include > ** / *. Properties </ the include > 
                    < the include > ** / *. XML </ the include > 
                </ Includes > 
                < Filtering > to false </ Filtering >
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

 

2, began to build:

 

Mysql go inside to create a user table:

 

Wait to see the list of things to check:

 

 

New maven project

 

 

 

Import library need in pom inside:

<?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>MybatisTest02</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--导入MySQL包/核心-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>

        <!--导入Mybatis包/核心-->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.3</version>
        </dependency>

        <!--导入junit测试包-->
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <!--maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被处理或生效问题,解决方案-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

</project>

 

 

根据官方文档所需要一个xml核心配置文件和一个java核心配置类:

 

 

 

在resources新建一个xml文件起名为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">
<!--Mybatis核心配置类-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--数据库jdbc包-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--数据库的url地址,serverTimezone=UTC设置时区,UseUnicode=true&amp;characterEncoding=UTF-8设置编码格式不然会乱码-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;UseUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
                <!--数据库的账号-->
                <property name="username" value="root"/>
                <!--数据库的密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

</configuration>

 

再把SqlSessionFactory,封装成一个工具类这样就可以方便调用

 

package com.hdlf.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;
//工具类
public class Mybatisconfig {

    private static SqlSessionFactory sqlSessionFactory;

    static{
        try {
            //使用Mybatis第一步,获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";//这个文件是可以直接读的。
            InputStream inputStream = Resources.getResourceAsStream(resource);//获取配置文件,就是在resource下的文件
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //既然有了sqlSessionFactory,顾名思义,我们就可以从中获得SqlSession
    //SqlSession完全包含了面向数据库执行SQL命令所需的所有方法
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

 

 

数据库表创建好之后,使用IDEA连接:

 

 

 

 

 

 

 

然后在新建一个实体类命名为User,里面的变量名字必须和mysql里创建表里面的键值名一样:

package com.hdlf.pojo;

public class User {
    private int id;
    private String name;
    private String pwe;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwe='" + pwe + '\'' +
                '}';
    }

    public User() {
    }

    public User(int id, String name, String pwe) {
        this.id = id;
        this.name = name;
        this.pwe = pwe;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwe() {
        return pwe;
    }

    public void setPwe(String pwe) {
        this.pwe = pwe;
    }
}

 

新建一个dao层Mapper接口命名为UserMaper:

 

package com.hdlf.dao;

import com.hdlf.pojo.User;

import java.util.List;

public interface UserMapper {

    List<User> getUser();
}

 

然后再新建一个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">
<!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
<mapper namespace="com.hdlf.dao.UserMapper">
    <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
    <select id="getUser" resultType="com.hdlf.pojo.User">
        SELECT * FROM mybatis.user
    </select>
</mapper>

 

在Test文件里新建一个测试类:

package com.hdlf.dao;

import com.hdlf.pojo.User;
import com.hdlf.utils.Mybatisconfig;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class UserMapperTest {
    @Test
    public void test(){

        //第一步,获得sqlsession对象
        SqlSession sqlSession = Mybatisconfig.getSqlSession();
        //执行sql
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> s = mapper.getUser();

        for (User user:s){
            System.out.println(user);
        }
        //关闭sqlSession
        sqlSession.close();
    }
}

目录是这样的:

 

 

     

运行之后会报错:

 

 

 显示绑定异常

 

原因是没有把UserMapper.xml注解到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">
<!--Mybatis核心配置类-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--数据库jdbc包-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--数据库的url地址,serverTimezone=UTC设置时区,UseUnicode=true&amp;characterEncoding=UTF-8设置编码格式不然会乱码-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;UseUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
                <!--数据库的账号-->
                <property name="username" value="root"/>
                <!--数据库的密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--注册UserMapper文件!!!-->
    <mappers>
        <mapper resource="com/hdlf/dao/UserMapper.xml"/>
    </mappers>
</configuration>

 

在运行一下

 

 

学起来很是复杂不过环境搭建好之后就非常轻松,一定要有耐心哦

Guess you like

Origin www.cnblogs.com/jzfanqiejiang/p/12175848.html