第一个Mybaits程序

Mybatis

1.第一个Mybatis程序

思路:搭建环境->导入Mybatis->编写代码->测试

1.1.1 搭建环境

1.1.1 创建普通maven项目

image-20210110230246250.png
image-20210110230411921.png

1.1.2 删除src

1.2 导入Mybatis

1.2.1 在pox.xml里导入依赖


    

    4.0.0

    com.kuang
    mybatis_day1
    pom
    1.0-SNAPSHOT
    
        mybatis_01
    
    
        
        
            org.mybatis
            mybatis
            3.5.2
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
        
            junit
            junit
            4.12
        
    


注意用crtl+shift+o刷新maven依赖

1.2.2 新建模块moduel

image-20210110230844443.png

1.2.3 Mybatis系统的核心设置 -- mybatis-config.xml

  • 进入mybatis的官网,入门https://mybatis.org/mybatis-3/zh/getting-started.html

  • 在子模块的src->main->resources里添加mybatis-config.xml并做相应配置

image-20210110232614701.png

1.3 编写代码

1.3.1 根据官方文档,我们写一个工具类utils,来简化SqlSession的创建

image-20210110233812077.png
  • package com.kuang.utils;
    
    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;
    
    public class MybatisUtils {
        private static  SqlSessionFactory sqlSessionFactory = null;
    
        static {
            try {
                //使用Mybatis第一步:获取SqlSessionFactory对象
                String resource = "mybatis-config.xml";
                InputStream inputStream = null;
                inputStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }
    
    }
    
    

1.3.2 根据数据库表创建相应的实体类Dao

  • 实体类的Constructor,getter,setter可以用alt+insert来快速构建

  • Dao中的UsersDao和之后的Mapper是一样的意思,都用Interface

  • image-20210110234007855.png
  • image-20210110234034825.png

1.3.3 在dao包下再建一个UsersMapper.xml

  • 
    
     
        
    
    

1.4 测试

1.4.1 在src->test下创建相同结构的测试

image-20210110234034825.png

1.4.2 发现错误并且解决错误

  • 错误1

  • image-20210111001614180.png
  • org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UsersDao is not known to the MapperRegistry.
    
  • 在核心配置mybatis-config.xml里要设置mappers

  • image-20210111001959515.png
  • 错误2

  • image-20210111002309342.png
  • java.lang.ExceptionInInitializerError

  • maven由于他的约定大于配置,我们之后可能遇到我们写的配置文件,无法被到处或者生效的问题,解决方案如下

  • 在pom.xml(父工程和子工程都要)中的build中配置resources,来防止我们资源导出失败问题

  • image-20210111003147046.png
  • 
        
            
                
                    
                        src/main/resources
                    
                    
                        **/*.properties
                        **/*.xml
                    
                    true
                
                
                    src/main/java
                    
                        **/*.properties
                        **/*.xml
                    
                    true
                
            
        
    
  • 错误3

  • 1 字节的 UTF-8 序列的字节 1 无效。

  • 解决办法:

  • 将所有XML里的UTF-8改成UTF8

  • 错误4

  • java不支持发行版本5

  • 解决办法:

  • image-20210111004310407.png
  • image-20210111004507897.png
  • image-20210111004603070.png
  • image-20210111004624795.png
  • image-20210111004731336.png

1.4.4 测试结果

image-20210111004811723.png
image-20210111004830297.png

你可能感兴趣的:(第一个Mybaits程序)