7.通用mapper入门

项目开发中,我们可能需要不动的增加修改表结构,这个时候我们就不停的去维护XxxMapper.xml映射文件

维护起来还是有很大的困难存在

 

即使现在MBG动态生接口和配置文件,也是很麻烦的事情

 

所以我们要使用Mybatis通用Mapper接口

好处:不需要程序员去编写sql语句 简单 方便 

缺点:你所以的多表联合查询 collection association基本用不上 因为mybatis通用mapper只能支持单表操作

   所以,如果某个bean对象中要获取其它的属性,还得我们程序在service业务层手动配置

 

Mybatis通用Mapper接口官网地址

https://mapperhelper.github.io/docs/

 

环境 mybatis+spring

 

1.添加pom.xml依赖

<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.0.0</version>
</dependency>

2.配置applicationContext.xml

value="com.gzcgxt.erp.mapper" 是扫描接口的包名

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.gzcgxt.erp.mapper" />
        <property name="properties">
            <value>
                mappers=tk.mybatis.mapper.common.Mapper
            </value>
        </property>
</bean>

3.创建UserMapper接口

package com.gzcgxt.erp.mapper;

import com.gzcgxt.erp.domain.User;

import tk.mybatis.mapper.common.Mapper;

public interface UserMapper extends Mapper<User>{

}

4.User对象

package com.gzcgxt.erp.domain;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import lombok.Data;

@Data
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    private String    name;
    private Integer age;
}

5.测试代码

package com.gzcgxt.erp.test;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.gzcgxt.erp.domain.User;
import com.gzcgxt.erp.mapper.UserMapper;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class App {
    
    
    @Autowired
    private UserMapper userMapper;
    
    @Test
    public void testMapper() throws Exception {
        
        User u=new User();
        u.setName("toto");
        u.setAge(29);
        
        userMapper.insertSelective(u);
        
        int id=u.getId();
        
        System.out.println("主键是:"+id);
        
    }
    
    
}

 

posted @ 2019-08-02 16:37  往事只能回味---  阅读(227)  评论(0)    收藏  举报