资讯专栏INFORMATION COLUMN

myBatis框架demo

jerry / 1765人阅读

摘要:我猜想框架源码中通过工厂类封装了数据库的连接这些模板代码,对象类似于我们在中使用的对象的封装,在我们调用关闭这个对象时,框架帮你关闭数据库连接之类的工作。

关于myBatis的介绍,我就多讲了,主要写下的内容是代码,还有一些我碰到的问题
1.配置文件Configuration.xml:






 
        
 



    
    
    
        
        
        
        
        
        
    




    


2.映射器xml文件 UserMapper.xml:








这两步一般是使用myBatis框架都会做的事(好像很多内容都可以在注解中做了,但是我对注解不是特别熟悉,就不尝试了)。接下来如何在Java代码中体现呢?
3.代码程序访问myBatis:

 1)类实现:
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;

static{
    try{
        reader =Resources.getResourceAsReader("Configuration.xml");
        sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
    }catch(Exception e){
        e.printStackTrace();
    }
}

     public User selectUserByID(int id){
    SqlSession session=sqlSessionFactory.openSession();
    User user;
    try{
        user=(User)session.selectOne("UserMapper.selectUserByID", id);
        System.out.println(user);
    }finally{
        session.close();
    }
    
    return user;
}

主要的内容其实就是先加载Configuration.xml文件,然后创建一个SqlSessionFactory,利用这个工厂类创建session,通过session来访问数据库。我猜想框架源码中通过工厂类封装了数据库的连接这些模板代码,session对象类似于我们在jdbc中使用的statement对象的封装,在我们调用close关闭这个session对象时,框架帮你关闭数据库连接之类的工作。

   2)接口实现:
public interface UserOperation {
      public User selectUserByID(int user_id);
}

没错,只用这一点代码,调用时就用如下代码就可以了

    SqlSession session =sqlSessionFactory.openSession();
    try{
        UserOperation userOperation =session.getMapper(UserOperation.class);
        User user =userOperation.selectUserByID(3);
        System.out.println(user);
        //session.commit();
        
    }finally{
        session.close();
    }

的确省去了很多不方便的数据库连接代码,我自己重构之前写过的一些代码,之前一个DAO类大概会有200行左右吧,用myBatis写完之后大概会到100左右,我还想把一些公共的部分提取出来作为工具类,那样会更少。总之,还不错。

在做demo的时候犯过的错:
1.在使用类实现的时候传递多个参数到myBatis框架一直都不对,尝试了网上的注解还是不可以,然后用接口实现,完全没有这个问题了,建议用接口
2.在写映射器文件的时候,会有奇怪的问题,报出无法找到XX属性,可以利用序号来在xml文件中可以利用序号传递参数,这样会避免这个问题

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64985.html

相关文章

  • springboot (一)集成tkmapper

    摘要:整合想着每次搭建新项目时框架都要从新搭建,基本常用的也就哪几种,现在就来搭建一种常用的后台框架,以后新开小项目可以直接拿来使用项目整体结构图新建空白项目,选中依赖略,也可以完全根据本人代码操作文件依赖项展示 springboot整合tkMapper 想着每次搭建新项目时框架都要从新搭建,基本常用的也就哪几种,现在就来搭建一种常用的springboot后台框架,以后新开小项目可以直接拿来...

    Shihira 评论0 收藏0
  • Spring+Mybatis+Velocity配置

    摘要:新推出的,对新手是友好了,但是不利于了解这个框架,而且遇到问题能查的资料少综上,我最后还是选择了作为开发的标配,下面以配置作为示例依赖文件没啥好讲的,程序员都知道规定了有哪些显式的,规定了最顶层的环境,是整个的纲领。 前言 最近开始尝试使用久负盛名的SM框架——Spring+Mybatis进行Web开发,从此走上了Spring配置的不归路。说句实在话,Spring是我特么见过所有WE...

    shengguo 评论0 收藏0
  • Spring Boot 教程(三): Spring Boot 整合Mybatis

    摘要:教程简介本项目内容为教程样例。目的是通过学习本系列教程,读者可以从到掌握的知识,并且可以运用到项目中。 教程简介 本项目内容为Spring Boot教程样例。目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中。如您觉得该项目对您有用,欢迎点击收藏和点赞按钮,给予支持!!教程连载中,欢迎持续关注! 环境 IDE: Eclipse NeonJa...

    Xufc 评论0 收藏0
  • 解密Mybatis,手写Mybatis框架(一)

    摘要:核心流程三大阶段缕清思路也就是核心流程之后,我们就开始写代码了,详见下节 Mybatis快速入门 步骤: 1.加入mybatis的依赖 2.添加Mybatis的配置文件 3.场景介绍 4.编写实体类丶mapper接口及mapper.xml文件 5.编写测试代码 demo: public class TUser { private Integer id; priva...

    SunZhaopeng 评论0 收藏0

发表评论

0条评论

jerry

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<