MyBatis学习笔记

写在前面:
这是一篇菜鸟读 MyBatis 官方文档的学习笔记。

临近毕业了,开始准备毕业设计。之前就在想,毕业设计做一个好玩点装逼点的东西:好玩点的是做个智能小车,装逼点的是做个用遗传算法解决实际问题。但是后来呢,还是跟现实妥协了:做个跟以后工作息息相关的事情吧!因此我选择了做一个被选烂了的老生常谈的《XXX系统》系列。为了完成这个“高实用性”的《XXX系统》,只好恶补一下相关知识。毕业设计知识准备第一个知识点先来学学数据库相关框架吧——MyBatis

MyBatis 浅显流程图

MyBatis学习笔记_第1张图片
MyBatis浅显流程.png

我想以后只要看着上面的流程图,大概就会使用 MyBatis 了吧。
先来简单说说 初次使用 MyBatis 的流程吧:

  1. 导入mybatis包,这个不用说了

  2. 创建配置文件“mybatis-config.xml”,并做相关配置。最基础的配置就是两个标签。

  3. 创建一个MyBatisUtil类,封装一个返回SqlSession函数。

  4. 编写Mapper.xml、IMapper.java(这里使用接口形式)

  5. 将Mapper.xml注册到“mybatis-config.xml”中。即里面写一个,这样才能告诉MyBatis上哪里找sql语句

Mybatis 配置文件

  • 中的子标签具有顺序性:
    properties: 一些变量的定义
    settings:一些设置
    typeAliases: xml 文件的 resultType 对应这里的别名
    typeHandlers
    objectFactory
    objectWrapperFactory
    plugins
    enviroments:数据库连接
    databaseIdProvider
    mappers:要映射类的 xml 配置文件

  • xml路径问题
    Resources类读取xml资源是在工程的 resources(src/main/resources)中寻找的。如果把xml文件放在 java(src/main/java)中,便无法找到。因为 maven 打包时不会把java目录中的 xml 打进去。可以在pom文件中告诉maven不要忽略java目录中的 xml:


    
        
            src/main/java
            
                **/*.xml
            
        
    

一些对象的 Scope 和生命周期

  • SqlSesstionFactoryBuilder——方法范围(局部)

  • SqlSeestionFactory——应用范围(单例)

  • SqlSession——请求或方法范围。它不是线程安全,因此不能被共享。官网示例代码:

SqlSession session = sqlSesstionFactory.openSession();
try{
  // do work
}finally{
  session.close();
}
  • 映射器实例——与SqlSession一样。官网示例代码:
SqlSession session = sqlSessionFactory.openSession();
try{
  XxxMapper mapper = session.getMapper(XxxMapper.class);
  // do word
}finally{
  session.close();
}

附上一些文件的写法,方便以后复制粘贴

  • pom.xml代码片段

    4.0.0
    me.imframework
    imframework
    war
    1.0-SNAPSHOT
    imframework Maven Webapp
    http://maven.apache.org
    
        
        
            org.mybatis
            mybatis
            3.4.1
        
        
        
            mysql
            mysql-connector-java
            5.1.28
        
        
        
            org.slf4j
            slf4j-log4j12
            1.7.21
        
        
        
            junit
            junit
            4.11
            test
        
    
    
        
            
                src/main/java
                
                    **/*.xml
                
            
            
                
                
                    
                
            
        
        imframework
    

  • mybatis-config.xml



    
        
    
    
        
            
            
                
                
                
                
            
        
    
    
        
    

  • UserMapper.xml



    
    
    
    
        insert into user(name,age,address) values
        
            (#{item.name},#{item.age},#{item.address})
        
    

你可能感兴趣的:(MyBatis学习笔记)