zoukankan      html  css  js  c++  java
  • MyBatis-入门基础

    1.创建测试数据库

    CREATE DATABASE `mybatis`;
    
    -- 使用此数据库
    USE `mybatis`;
    
    -- 创建 user 表
    CREATE TABLE user(
        `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `name` VARCHAR(30) NOT NULL,
        `pwd` VARCHAR(30) NOT NULL
    )ENGINE=INNODB CHARSET UTF8;
    
    -- 添加3条测试数据
    INSERT INTO user(`name`, `pwd`) VALUES
    ('张三', '864531'),
    ('李四', '1564513'),
    ('刘鹏飞', '9846513')

    2.搭建项目

    使用IDEA创建一个空的maven项目

     然后删除其中的src项目,将此工程作为一个父工程

    3.添加maven依赖

    <!-- mybatis 依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.5</version>
            </dependency>

    4.添加第一个Module测试项目

     

     5.创建pojo实体类

    使用@Data注解可以省去大量get/set方法

    @Data
    public class User implements Serializable {
        private Integer id;
        private String name;
        private String pwd;
    }

    6.配置Mybatis核心文件mybatis-config.xml

    <!-- mybatis 核心配置 -->
    <configuration>
        <!-- 运行环境 -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
    </configuration>

    7.创建一个工具类用于获取SqlSession

    public class MyBatisUtil {
    
        private static SqlSessionFactory sqlSessionFactory;
    
        static {
            try {
                // 初始化构建 SqlSessionFactory
                String resource = "mybatis-config.xml";
                InputStream inputStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 通过 SqlSessionFactory 创建一个 SqlSession 对象
         *
         * @return SqlSession 对象
         */
        public static SqlSession getSqlSession() {
            return sqlSessionFactory.openSession();
        }
    }

    8.添加UserMapper接口

    public interface UserMapper {
    
        /**
         * 查询所有用户信息
         *
         * @return 用户信息
         */
        public List<User> getUserList();
    }

    9.添加UserMapper.xml配置文件编写sql语句

    mapper namespace="com.bai.dao.UserMapper">
    
        <!-- 查询所有用户信息 -->
        <select id="getUserList" resultType="com.bai.pojo.User">
            select * from mybatis.user;
        </select>
    
    </mapper>

    10.添加测试类测试

    public class UserMapperTest {
    
        @Test
        public void test01() {
            SqlSession sqlSession = null;
            try {
                // 1.获取到 SqlSession 对象那个
                sqlSession = MyBatisUtil.getSqlSession();
                // 2.通过 getMapper 方法加载对应的 UserMapper 接口
                UserMapper mapper = sqlSession.getMapper(UserMapper.class);
                // 3.执行接口方法
                List<User> userList = mapper.getUserList();
                for (User user : userList) {
                    System.out.println(user);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 4.关闭 sqlSession 对象
                if (sqlSession != null) {
                    sqlSession.close();
                }
            }
        }
    
    }

    然后通过运行我们发现一个被遗忘的问题, UserMapper文件并没有被注册到 MapperRegistry 中

    Type interface com.bai.dao.UserMapper is not known to the MapperRegistry.

    我们要解决这个问题,需要在 mybatis-config.xml 文件中注册此 Mapper 文件

    然后我们还有遇到一个初始化异常错误

    Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/bai/dao/UserMapper.xml

    发生这个错误是因为在 java 源码中并不能加载 xml 类型的文件,要解决这个问题,需要修改一个 pom.xml 文件,添加一些配置

    <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <!-- 支持 properties 在 resources 包中存在 -->
                        <include>**/*.properties</include>
                        <!-- 支持 xml 文件在 resources 包中存在 -->
                        <include>**/*.xml</include>
                    </includes>
                    <!-- 是否过滤 : 是 -->
                    <filtering>true</filtering>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <!-- 支持 properties 在 java 包中存在 -->
                        <include>**/*.properties</include>
                        <!-- 支持 xml 文件在 java 包中存在 -->
                        <include>**/*.xml</include>
                    </includes>
                    <!-- 是否过滤 : 是 -->
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>

    最终测试结果:

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/www-dzsblogs-com/p/13911851.html
Copyright © 2011-2022 走看看