Mybatis学习笔记1 Mybatis入门

差不多根据mybatis中文文档:创建第一个mybatismaven项目,将它跑起来

入门_MyBatis中文网

新建库

Mybatis学习笔记1 Mybatis入门_第1张图片

建表

Mybatis学习笔记1 Mybatis入门_第2张图片

创建项目

Mybatis学习笔记1 Mybatis入门_第3张图片

Mybatis学习笔记1 Mybatis入门_第4张图片Mybatis学习笔记1 Mybatis入门_第5张图片Mybatis学习笔记1 Mybatis入门_第6张图片

Mybatis学习笔记1 Mybatis入门_第7张图片

重启之后

Mybatis学习笔记1 Mybatis入门_第8张图片

配置下Maven与encoding  成习惯了

Mybatis学习笔记1 Mybatis入门_第9张图片Mybatis学习笔记1 Mybatis入门_第10张图片Mybatis学习笔记1 Mybatis入门_第11张图片

新建模块

Mybatis学习笔记1 Mybatis入门_第12张图片Mybatis学习笔记1 Mybatis入门_第13张图片

注意:这个GroupId和ArtifactId  version是之后,你用Maven install时候后存放的包路径和包名

Mybatis学习笔记1 Mybatis入门_第14张图片

目录结构:虽然换了JDK17但是编译器版本好像不行,IDEA版本可能低了

Mybatis学习笔记1 Mybatis入门_第15张图片

突然发现maven不见了

Mybatis学习笔记1 Mybatis入门_第16张图片Mybatis学习笔记1 Mybatis入门_第17张图片

输入

Maven projects

Mybatis学习笔记1 Mybatis入门_第18张图片

选中对应的pom.xml

Mybatis学习笔记1 Mybatis入门_第19张图片

maven回来了

Mybatis学习笔记1 Mybatis入门_第20张图片

我还是把JDK换成8算了

官网意思,从XML中构建SqlSessionFactory

也就是说,这个XML其实是在配置SqlSessionFactory

Mybatis学习笔记1 Mybatis入门_第21张图片

  也讲了不使用XML配置的方式

Mybatis学习笔记1 Mybatis入门_第22张图片

先按XML进行配置

在Resources下新建mybatis-config.xml文件名无所谓

这里讲下:有些配置文件好比一个模板,经常要使用,可以通过idea配置一下一些常用文件的模板

以便下次使用时候,可以直接创建,具体方式

IDEA常用模板文件配置_biubiubiu0706的博客-CSDN博客

这里我就按Mybatis入门复制了

Mybatis学习笔记1 Mybatis入门_第23张图片

把JDBC连接的驱动,URL,用户名,密码先整上

Mybatis学习笔记1 Mybatis入门_第24张图片

接下来

Mybatis学习笔记1 Mybatis入门_第25张图片

Mybatis学习笔记1 Mybatis入门_第26张图片

下面编写Mybatis程序 执行之后发现数据库没插入

Mybatis学习笔记1 Mybatis入门_第27张图片

原因是Mybatis默认获取的sqlSession对象是不支持默认提交的

Mybatis学习笔记1 Mybatis入门_第28张图片

Mybatis学习笔记1 Mybatis入门_第29张图片

看下SqlSessionFactory和sqlSession的实现类是哪个   -------->DefaultSqlSessionFactory和DefaultSqlSession  对源码有兴趣的可以看看

Mybatis学习笔记1 Mybatis入门_第30张图片

Mybatis学习笔记1 Mybatis入门_第31张图片

一般情况下都是一个数据库对应一个SqlSessionFactory对象

几个细节:

mybatis核心配置文件命名可以随自己,放的位置也可以随自己(出于程序健壮性,可移植性,最好放在resources目录下)

mybatis的xxxMaper.xml里的sql语句可以;(分号结尾)也可以省略不写

通过同一个SqlSessionFactory对象可以获得多个不同sqlSession对象

Resources.getResourceAsStream("mybatis-config.xml");这个是mybatis封装的API,一般遇到Resources说明都是resources目录下的,加入你的mybatis配置文件在resources下的xxx包下yyy.xml

那么

InputStream inputStream = Resources.getResourceAsStream("xxx/yyy.xml");

获取到一个输入流

然后将输入流放到build方法内

SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);

那么能不能自己new个流呢?也是可以的,比如将配置文件放在D盘某目录下

InputStream in=new FileInputStream("d:\\mybatis-config.xml")

或者InputStream in=new FileInputStream("d:/mybatis-config.xml")

但是这样的缺点是就是移植性差,放到苹果电脑就不行了

指定resouces目录下,到哪里都可以用.

另外加载mybatis核心配置文件还有一种方式用类加载器去获得系统类加载器调用getResourceAsStream("文件名")的方式

InputStream in=ClassLoader.getSystemClassLoad().getResourceAsStream("mybatis-config.xml");

其实也可以直接这样InputStream in=ClassLoader.getSystemResourceAsStream("mybatis-config.xml");





    

关于Mybatis的事务管理机制

Mybatis学习笔记1 Mybatis入门_第32张图片

 
 
 

如果使用的事务管理器类型是JDBC的话

SqlSession sqlSession = sqlSessionFactory.openSession();

这句代码底层会执行conn.setAutoCommit(false);

如果使用的事务管理器类型是MANAGED的话,交给容器管理.比如交给Spring管理了.一般就是没有事务了,自动提交了

openSession有个重载方法:

SqlSession sqlSession = sqlSessionFactory.openSession(true);意思是自动提交

在JDBC事务中,如果没有设置conn.setAutoCommit(false);的话conn.getAutoConmmit()本身就是true;

 经过上面介绍,写一个差不多完整版本的Mybatis入门程序

Mybatis学习笔记1 Mybatis入门_第33张图片

为了以后测试方便,不需要测试一个就写个main方法,引入JUnit(单元测试)

新建个模块测试Junit

Mybatis学习笔记1 Mybatis入门_第34张图片

Maven项目

Mybatis学习笔记1 Mybatis入门_第35张图片Mybatis学习笔记1 Mybatis入门_第36张图片

引入依赖

Mybatis学习笔记1 Mybatis入门_第37张图片

比如说需要对该业务方法进行测试

Mybatis学习笔记1 Mybatis入门_第38张图片

在test包下建测试类     这个断言挺好用

Mybatis学习笔记1 Mybatis入门_第39张图片

Mybatis中引入junit

Mybatis学习笔记1 Mybatis入门_第40张图片

在单元测试中编写Mybatis程序

Mybatis学习笔记1 Mybatis入门_第41张图片

可以看到现在没有日志输出

关于Mybatis集成日志框架logback.可以让调试更加方便

下面记录是以前的学习记录

Mybatis学习笔记1 Mybatis入门_第42张图片

另外说一下 在配置文件里  点进去  有个标签的顺序问题,需要按顺序来

Mybatis学习笔记1 Mybatis入门_第43张图片

Mybatis学习笔记1 Mybatis入门_第44张图片

Mybatis学习笔记1 Mybatis入门_第45张图片

关于在配置文件里Mybatis集成日志框架logback.

在官方文档设置里

Mybatis学习笔记1 Mybatis入门_第46张图片

Mybatis学习笔记1 Mybatis入门_第47张图片

Mybatis学习笔记1 Mybatis入门_第48张图片

这样就有日志输出了

Mybatis学习笔记1 Mybatis入门_第49张图片

但是详细时间,线程名称,如果想使用更加丰富的日志,可以集成第三方依赖

SLF4(沙拉风):沙拉风是一个日志标准,其中有一个框架叫做logback,它实现了沙拉风规范

LOG4J:

LOG4J2:

STDOUT_LOGGING:Mybatis内置标准日志实现

....

注意:SLF4,LOG4J,LOG4J2作者是同一个人

修改Mybatis配置文件     注意如果用第三方依赖  这个settings可以不配置   这里不配置也是可以的

Mybatis学习笔记1 Mybatis入门_第50张图片

其实不需要配置   除非用内置

Mybatis学习笔记1 Mybatis入门_第51张图片

引入jar包

Mybatis学习笔记1 Mybatis入门_第52张图片

然后引入logback所必须的xml配置文件

这个配置文件必须叫做:logback.xml或者logback-test.xml,不能是其它的名字.

这个配置文件必须放在类的根目录下.不能是其他位置

logback.xml代码



    
    
    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        
    
    
    
        
            
            ${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log
            
            30
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logge
                r{50} - %msg%n
        
        
        
            100MB
        
    
    
    
    
    
    
    
    
        
        
    

测试

 Mybatis学习笔记1 Mybatis入门_第53张图片

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