Java教程

mybatis学习笔记(二) for 实践

本文主要是介绍mybatis学习笔记(二) for 实践,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

mybatis基本应用

1 快速入门

myBatis官网地址:http://www.mybatis.org/mybatis-3/

1.1 开发步骤

  1. 引入依赖
  2. 创建user表
  3. 编写User实体
  4. 编写映射文件UserMapper.xml
  5. 编写核心文件SqlMapConfig.xml
  6. 编写测试类

1.1 环境搭建

  1. 引入依赖
    创建一个maven工程,在pom文件中导入依赖
   <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <!--引入依赖-->
    <dependencies>
        <!--mybatis坐标-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!--mysql驱动坐标-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
            <scope>runtime</scope>
        </dependency>
        <!--单元测试坐标-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
  1. 创建数据表
    image
  2. 创建User实体类
package com.moon.pojo;

/**
 * @Author: Moon
 * @Date: 2021/5/16 下午4:51
 */
public class User implements Serializable  {
    private String id;
    
    private String username;

    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

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

4.编写mapper文件 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.moon.dao.IUserDao">
    <select id="selectAll" resultType="user">
        select * from user;
    </select>
</mapper>

5.编写核心配置文件 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"></properties>

    <!--给实体类的全限定类名给别名-->
    <typeAliases>
        <!--给单独的实体起别名-->
        <!--此时在userMapper.xml中sql语句中 user指代的就是com.moon.pojo.User -->
        <!--  <typeAlias type="com.moon.pojo.User" alias="user"></typeAlias>-->

        <!--批量起别名:该包下所有的类的本身的类名:别名还不区分大小写 -->
        <package name="com.moon.pojo"/>
    </typeAliases>

    <!--environments:运行环境-->
    <environments default="development">
        <environment id="development">
            <!--当前事务交由JDBC进行管理-->
            <transactionManager type="JDBC"></transactionManager>
            <!--当前使用mybatis提供的连接池-->
            <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文件 -->
        <mapper resource="userMapper.xml"></mapper>
    </mappers>

</configuration>
  1. 编写测试类test测试
import com.moon.dao.IUserDao;
import com.moon.pojo.User;
import java.io.InputStream;
import java.util.List;
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.Before;
import org.junit.Test;

/**
 * @Author: Moon
 * @Date: 2021/5/16 下午5:11
 */
public class test {

    private SqlSession sqlSession;

    @Before
    public void openSqlSession() throws Exception {
        // 加载核心配置文件得到输入流
        InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
        // 根据输入流解析配置文件 得到sql会话工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
        // 通过工厂创建会话
        sqlSession = sqlSessionFactory.openSession();
    }

    @Test
    public void test1() {
        // 传统方式
        List<User> users = sqlSession.selectList("com.moon.dao.IUserDao.selectAll");
        users.forEach(System.out::println);
        sqlSession.close();
    }
}

此时控制台打印:

User{id='1', username='lucy'}
User{id='2', username='tom'}

好了,一个最简单的使用mybatis传统方式开发步骤完成,接下来会使用mybatis更多功能。

这篇关于mybatis学习笔记(二) for 实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!