20200107——mybatis另一个学习项目day01

mybatis的环境搭建
第一步:创建maven工程并导入坐标
第二步:创建实体类和dao接口
第三步:创建Mybatis的主配置文件SqlMapConfig.xml
第四步:创建映射配置文件 UserDao.xml

环境搭建的注意事项
第一个:创建UserDao.xml 和UserDao.java时,名称是为了和我们之前的知识保持一致,在mybatis中它把持久成的操作接口名称和映射文件也叫Mapper
第二个:创建目录和包不一样,包创建,创建的是三级目录,目录创建,创建的是一级目录
第三个:mybatis的映射配置文件位置必须和dao接口的包结构相同
第四个:配置文件的mapper标签的namespace属性必须是dao接口全限定类名
第五个:映射配置文件的操作配置,id属性必须是dao接口的方法

当我们遵从了第三、四、五点之后,我们在开发中就无须再写dao的实现类

SqlMapConfig.xml文件,也就是全局mybatis文件的配置

<?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="mysql">
         <environment id="mysql">
             <transactionManager type="JDBC"></transactionManager>
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.jdbc.Driver"></property>
                 <property name="url" value="jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"></property>
                 <property name="username" value="root"></property>
                 <property name="password" value="password"></property>
             </dataSource>
         </environment>
    </environments>
    <mappers>
        <mapper resource="com/mmz/dao/UserDao.xml"></mapper>
    </mappers>
</configuration>

单个的UserDao配置
这个老师喜欢用UserDao进行命名配置,而一般都是UserMapper进行命名

<?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.mmz.dao.UserDao">
<!--配置查询所有-->
    <select id="findAll">
        select  * from user
    </select>
</mapper>

测试方法
一般都是用junit插件进行测试,他这个直接写了一个主方法

package com.mmz.test;

import com.mmz.dao.UserDao;
import com.mmz.domain.User;
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.InputStream;
import java.util.List;

/**
 * @Classname MybatisTest
 * @Description TODO
 * @Date 2020/1/7 12:21
 * @Created by mmz
 */
public class MybatisTest {
    public static void main(String[] args) throws Exception {
        //1.读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建工厂
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder  = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //3.使用工厂生产对象
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        //4.使用sqlsessio,创建Dao接口的代理对象
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user:users
             ) {
            System.out.println(user);
        }
        //6.释放资源
        sqlSession.close();
        inputStream.close();
    }
}

运行失败,据我以往经验,应该是UserDao文件中,没有输入和输出的映射没有编写。加上之后,就成功了。
还有一点是要在数据库连接的时候加上

?characterEncoding=utf-8

在这里插入图片描述

mybatis的入门案例
第一步:读取配置文件
第二步:创建sqlsessionfactory工厂
第三步:创建sqlsession
第四步:创建dao接口的代理对象
第五步:执行dao中的方法
第六步:释放资源

注意事项:不要忘记在映射配置中告知mybatis要封装到哪个实体类中
配置的方式 指定实体类的全限定类名

自定义mybatis的分析
mybatis在使用代理dao的方式实现增删改查的时候做什么事么
第一:创建代理对象
第二:在代理对象创建selectList方法

发布了657 篇原创文章 · 获赞 39 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/103872126