MyBatis简单认识(入门)

Posted 肖镜泽

tags:

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

1.1. 入门准备

  创建个java项目,项目结构

 

 

 

1.2在lib文件中导入相应的jar包(注意添加完后,记得右键文件lib点击选中Add as Library)

 

 

1.3准备相应的表

 

 

 

 

 

1.4.准备相应的domain,在domain文件里创建个Users.java,(创完,就和图1.1图片一样,UserMapper.xml在下面2.2处创建)

 

 

1.5 dao层准备

 

 

 

 

2.1. MyBatis入门实现

一切准备就绪。接下来就是开始使用MyBatis了。但是问题来了,怎么用呢?

该文档虽然只有50多页,但是已经足够咱们学习了。

先来入个门吧:入门开始,除了介绍什么是MyBatis之后,就在说一个核心对象:SqlSessionFactory,接下来,咱们就是要想方设法拿到这个核心对象。

SqlSessionFactory对象怎么拿到:直接找到文档中的从 XML 中构建 SqlSessionFactory这一小节开始即可。

①获取SqlSessionFactory

  1 我们需要准备一个核心的Mybatis-config.xml文件

  2 拿到SqlSessionFactory之前需要读取核心的xml配置文件

  3 需要构造者(SqlSessionFactoryBuilder)来创建它

②映射文件准备

③通过SqlSessionFactory获取SqlSession执行映射SQL

2.2在domain文件里创建UserMapper.xml文件

 

 

 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">
<!-- orm框架 sql的映射
namespace:命名空间  namespace路径+ id值
          namespace怎么配置 包名.接口名 + queryAll
-->
<mapper namespace="cn.itsors.dao.IUserDao">
    <!-- 查询 queryAll()
        resultType 返回类型
    -->
    <select id="queryAll" resultType="cn.itsors.domain.Users">
        select * from t_user
    </select>
</mapper>

 

 

 

2.3在resources文件里创建jdbc.properties文件和核心配置文件MyBatis-Config.xml

 

 

 jdbc.properties

jdbc.driverClassName=驱动程序类名称
jdbc.url=数据库地址
jdbc.username=数据库账号
jdbc.password=数据库密码

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>
    <!--引入jdbc.propeties文件-->
    <properties resource="jdbc.properties" />
    <!-- 环境们 (很多环境的意思)
        default:默认使用哪一个环境(必需对应一个环境的id)
     -->
    <environments default="development">
        <!--
            一个环境  id:为这个环境取唯一一个id名称
        -->
         <environment id="development">
            <!--
                事务管理   type:JDBC(支持事务)/MANAGED(什么都不做)
            -->
            <transactionManager type="JDBC" />
            <!-- 数据源, 连接池  type(POOLED):MyBatis自带的连接池 -->
            <dataSource type="POOLED">
                <!-- 连接数据库的参数 -->
                <property name="driver" value="${jdbc.driverClassName}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <!-- 这个mappers代表的是相应的ORM映射文件 -->
    <mappers>
        <mapper resource="cn/itsors/domain/UserMapper.xml" />
    </mappers>

</configuration>

2.4 给1.5dao层准备的实现类添加代码

 

 

UsersImpl.java
package cn.itsors.dao.impl;
import cn.itsors.dao.IUserDao;
import cn.itsors.domain.Users;
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.Reader;
import java.util.List;
public class UsersImpl implements IUserDao {
    /**
     * 查询数据库全部数据
     * @return
     * @throws IOException
     */
    @Override
    public List<Users> querAll() throws IOException {
        //调用mapper.xml的selectList方法
        Reader reader = Resources.getResourceAsReader("MyBatis-Config.xml");
        //得到SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //得到sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //调用方法 namespace+id
        List<Users> list = sqlSession.selectList("cn.itsors.dao.IUserDao.queryAll");
        //返回结果集
        return list;
    }
}

2.5测试

 

 UserTest.java

package cn.itsors.test;

import cn.itsors.dao.impl.UsersImpl;

import java.io.IOException;
import java.util.List;

import cn.itsors.domain.Users;
import org.junit.Test;

public class UsersTest{

    @Test
    public void querAll() throws IOException {
        //获取实现类
        UsersImpl users = new UsersImpl();
        //调用querAll方法
        List<Users> list = users.querAll();
        //遍历打印所有数据
        for (Users users1 : list) {
            System.out.println(users1);
        }
    }
}

 

 

 

 

 

 

 

以上是关于MyBatis简单认识(入门)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis入门

myBatis简单入门

myBatis简单入门

认识Mybatis

MyBatis入门简单操作

MyBatis入门简单操作