第一个MyBatis程序

1. 导入maven依赖

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.3</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.20</version>
</dependency>

2. 配置mybatis.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://softwind.site:3300/smbms"/>
                <property name="username" value="root"/>
                <property name="password" value="yang"/>
            </dataSource>
        </environment>
    </environments>

</configuration>

3. 读取配置文件

读取配置文件,配置连接数据库信息

package com.yang.util;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class MyBatisUtil {
    static SqlSessionFactory sessionFactory;
    static {
        // 读入配置文件流
        String resource = "mybatis-conf.xml";
        InputStream resourceAsStream = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
        // 创建会话工厂
        sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
    }

    public static SqlSession getSQLSession(){
        // 创建会话并返回,sqlSession相当于statement(数据库操作对象)
        return sessionFactory.openSession();
    }
}

4. 创建dao接口

dao层中的接口即操作数据库对应的方法

package com.yang.dao;

public interface UserMapper {
    // 获取用户列表
    void getUserList();
}

5. 创建对应接口的mapper

一个mapper相当于UserDaoImpl,namespace对应着UserDaoImpl名字;

<?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.yang.dao.UserMapper">

    <select id="getUserList" resultType="com.yang.pojo.User">
        select * from smbms_user;
    </select>
</mapper>

image-20210130155337886

总之,一个UserMapper.xml文件就相当于UserDaoImpl实现类,只是抽离了jdbc连接数据库、执行sql语句处理结果接的操作,通过sqlSession来统一执行

6. 编写测试文件

注意:Test包下,测试类的名称不能与被测试类的名称相同,否则很容易在程序中导错包导致错误,可以加上Test后缀;

public class UserMapperTest {
    @Test
    public void getUserList(){
        SqlSession session = MyBatisUtil.getSession();

        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }

        session.close();
    }
}
  1. 在配置文件中已经注册了编写的Mapper,相当于是注册了UserDaoIml,若需要使用,以前是在service层中通过new的方式生成;
  2. MyBatis:先通过会话工厂生成会话session,这相当于与数据库进行连接并创建了数据库操作对象statement,但我们需要告诉MyBatis执行哪个Dao的查询,比如要执行UserDao的查询,则通过session.getMapper(UserMapper.class);得到其查询操作的mapper,通过mapper对应的方法mapper.getUserList();即可进行查询;简单的说session.getMapper(UserMapper.class);就相当于new UserDaoIml();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值