资讯专栏INFORMATION COLUMN

解密Mybatis,手写Mybatis框架(一)

SunZhaopeng / 1307人阅读

摘要:核心流程三大阶段缕清思路也就是核心流程之后,我们就开始写代码了,详见下节

Mybatis快速入门

步骤

1.加入mybatis的依赖

2.添加Mybatis的配置文件

3.场景介绍

4.编写实体类丶mapper接口及mapper.xml文件

5.编写测试代码

demo:

public class TUser {
    private Integer id;

    private String userName;

    private String realName;

    private Byte sex;

    private String mobile;

    private String email;

    private String note;

    private Integer positionId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public Byte getSex() {
        return sex;
    }

    public void setSex(Byte sex) {
        this.sex = sex;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public Integer getPositionId() {
        return positionId;
    }

    public void setPositionId(Integer positionId) {
        this.positionId = positionId;
    }
      
}

mapper接口:

public interface TUserMapper {
    
    TUser selectByPrimaryKey(Integer id);
    
}

TUserMapper.xml:

    



    


mybatis-config.xml:





    

    
        

        
        

        

        
        
    
    
    
    
    


    
    
        
        
            
            
                
                
                
                
            
        

    

    


    
        
    



db.properties:

jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
jdbc_username=root
jdbc_password=qq997921

测试类:

public class MybatisQuickStart {

private SqlSessionFactory sqlSessionFactory;



@Test
// 快速入门
public void quickStart() throws IOException {
    //-------------第一阶段-------------
    // 1.读取mybatis配置文件创SqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    inputStream.close();
    //-------------第二阶段-------------
    // 2.获取sqlSession
    SqlSession sqlSession = sqlSessionFactory.openSession();
    // 3.获取对应mapper
    TUserMapper mapper = sqlSession.getMapper(TUserMapper.class);

    //-------------第三阶段-------------
    // 4.执行查询语句并返回结果
    TUser user = mapper.selectByPrimaryKey(1);
    System.out.println(user.toString());

}

}

Mybatis两种编程模型

1.封装了iBatis编程模型,使用sqlSession对外提供数据库的访问
比如使用sqlSession直接访问数据库,代码如:

User user1 = session.selectOne("com.XX.XX.XXMapper.selectOneByKey","1");

2.使用mapper接口编程,就可以访问数据库

UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);

对比两种模型
第一种缺点:代码里面会很多硬编码,硬编码不好维护,代码不优雅,并且selectOne方法名称没有业务含义.

优先选择mapper接口编程。

Mybatis核心流程三大阶段

缕清思路也就是Mybatis核心流程之后,我们就开始写代码了,详见下节~~

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

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

相关文章

  • 解密Mybatis,手写Mybatis框架(二)

    摘要:三大巨头结果集再通过反射机制映射到对象上面,便做好了数据的映射关于映射具体内容可查阅资料及源码到这我们已经完成了一个简易的框架了通过手写一个简单的框架,我们就可以看得懂源码了,学习框架设计的思路并且增强我们的内功 简化版Mybatis实现思路 1.创建SqlSessionFactory实例. 2.实例化过程中,加载配置文件创建configuration对象. 3.通过factory创...

    chuyao 评论0 收藏0
  • Web开发框架推导

    摘要:边界清晰,有利于理解开发测试和部署。前后端分离考虑到目前开发流行前后端分离,为了适应潮流,引入前后端分离的约束。该请求被接受处理,但是该处理是不完整的。 本文欲回答这样一个问题:在 「特定环境 」下,如何规划Web开发框架,使其能满足 「期望 」? 假设我们的「特定环境 」如下: 技术层面 使用Java语言进行开发 通过Maven构建 基于SpringBoot 使用Intelli...

    vpants 评论0 收藏0
  • 教你手写Mybatis框架

    摘要:前言嗨,小伙伴们,这篇博文将带大家手写,让大家对的核心原理以及工作流程有更加深刻的理解。模块顾名思义,就是框架配置类,用于解析配置文件加载相关环境。配置模块这里的对框架的配置使用了简单的,主要原因还是简单易懂然后节省时间。 前言 (。・∀・)ノ゙嗨,小伙伴们,这篇博文将带大家手写mybatis,让大家对mybaits的核心原理以及工作流程有更加深刻的理解。在上篇Spring-Mybat...

    antyiwei 评论0 收藏0
  • 开源框架解析,手写MyBatis细节思路

    摘要:基本纲要组成动态配置配置核心源码分析源码解析源码解析源码解析源码解析手写框架是什么本质是一种半自动的框架,前身是其源于和的组合,除了和映射关系之外,还需要编写语句映射三要素映射规则快速入门加入的依赖添加的配置文件场景介绍编写实体类接口以及文 showImg(https://segmentfault.com/img/bVblrnC); Mybatis基本纲要 Mybatis组成 · 动态...

    paulli3 评论0 收藏0
  • 分布式软件架构整合(

    摘要:通过整合及可以实现数据库查询后将数据持久化。但是可能出现幻像读这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。 所需技术:spring、mybatis、druid、flyway、logback、nodejs、html、css3 ;目标:创建一个业务框架,后端采用spring+mybatis,中间层采用node,前端html5,css3等; showImg(https:/...

    mochixuan 评论0 收藏0

发表评论

0条评论

SunZhaopeng

|高级讲师

TA的文章

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