一个简单的mybatis demo实现

Posted amcomputer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的mybatis demo实现相关的知识,希望对你有一定的参考价值。

数据库

在这里插入图片描述

项目目录:

在这里插入图片描述

mybatis-conf.xml文件内容:

<?xml version="1.0" encoding="UTF8" ?>
<!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://localhost:3306/mybatis?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="mysql"/>
            </dataSource>
        </environment>
    </environments>

    <!--    每个maper.xml都需要到这里注册-->
    <mappers>
        <mapper resource="com/kuang/dao/UseMapper.xml"/>
    </mappers>
</configuration>

mybatisUtil.java文件内容:

用来获取SqlSession对象,连接了数据库后,要记得关闭

package com.kuang.util;

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

//获取ssqlSessionFactory对象
public class MybatisUtils {
    public   static SqlSessionFactory sqlSessionFactory;
    //private  static  InputStream inputStream = null;
    //private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
//使用Mybatis第一步 获取sqlSessionFactory对象
            String resource = "mybatis-conf.xml";
            Reader resourceAsReader = Resources.getResourceAsReader(resource);
            System.out.println(resource);
//SqlSessionFactory 出现问题
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
            System.out.println(resourceAsReader);
        } catch (Exception e) {
            e.printStackTrace();

        }
    }



    public static SqlSession getSqlSession(){
        SqlSession  sqlSession= sqlSessionFactory.openSession();
        return sqlSession;
    }


}

UserDao或者UserMaper.java:

以后只知道负责写接口就好了,接口的实现放到xml文件里面去写

package com.kuang.dao;

import com.kuang.pojo.User;

import java.util.List;

//Dao==mapper
public interface UserDao {
    public List<User> getUser();
}

接口的实现类,UserMapper

没有mybaits之前,是通过xxxImpl.java来实现
id="getUser"表示接口里面的方法
resultType=“com.kuang.pojo.User” sql执行后返回的类型

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--命名空间需要绑定一个对应的Dao or Mapper接口-->
<!--以前需要写一个interface的实现类-->
<!--现在只配置文件即可-->
<!--下面就是接口实现类-->
<mapper namespace="com.kuang.dao.UserDao">
    <select id="getUser" resultType="com.kuang.pojo.User" >
        select * from mybatis.user
    </select>
</mapper>

测试主类:

package com.kuang.dao;

import com.kuang.pojo.User;

import org.apache.ibatis.binding.MapperMethod;
import org.junit.Test;
import org.apache.ibatis.session.SqlSession;
import com.kuang.util.MybatisUtils;

import java.util.List;

public class UserDaoTest {
    @Test
    public void test(){
        //1 获取SqlSession
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        //方式1 getMapper
        UserDao userDao=sqlSession.getMapper(com.kuang.dao.UserDao.class);
        List<User>  userDaos =userDao.getUser();

        for (User user:userDaos) {
            System.out.println(user.getId()+user.getName());
        }

        sqlSession.close();
    }
}

以上是关于一个简单的mybatis demo实现的主要内容,如果未能解决你的问题,请参考以下文章

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

mybatis一个简单的demo以及日志的添加

mybatis代理类Demo

springboot+mybatis+swagger实现的Demo

springboot+mybatis+vue+iviewui实现前后端分离的小Demo

mybatis实现简单的增删查改