mybatisplus的使用

mybatis是将jdbc的驱动注册,connection、preparedstatement创建,参数设置,结果映射等进行包装。让开发者专注于sql代码的开发。mybatisplus则是进一步包装,替程序员将通用的CRUDsql代码生成。

接下来讲讲怎么使用,现在数据库中新建表People有两个字段主键id int ,name varchar2(20):

1.添加pom依赖

 

//依赖与spring配合mybatis中一样,只是用以下依赖替换mhbatis和mybatis-spring的依赖,记得去掉这两个,不然可能冲突

       com.baomidou
       mybatis-plus
       2.0.1 

 

 

 

 

2.配置文件

主要是将mybatis的sqlSessionFactory替换成mybatis-plus的即可,mybatis-plus只做一些功能的扩展

 

 
    
    
    
        
    

    
        
        
        
        
    

    
    
        
        
//这个用于下文中的mybatis传统方法
        
     //扫描这些包下的@TableName注释的model对象
        
        
         
            
                
                
                
                
            
        
        
    

	
    
    
        
    
    
    
    
        
        
    
    
   
	    
	    



	
    
	    
	    
		
		


	    
	

 

3.在com/cq/mybatis/model包下新建一个People对象

@TableName("people")
public class People implements Serializable{
	private int id;
	private String name;
}

 这里注解中的值“people”对应数据库中的表people。如果这个people类有一个属性firstName,根据上面配置数据库中则应该有一个字段first_name,然而people表中并没有这个字段,则应该在People类中的firstName属性上面添加一个注解@TableField(exist=false)

 

4.在com.cq.mybatis.mapper中新建dao层接口PeopleMapper,我猜MapperScannerConfigurer扫描到它时,生成动态代理类,然后注入sqlSession对象,然后根据他继承BaseMapper以及泛型People生成对应的CRUD方法,在根据类全路径名以及方法名myAddPeople到mapper文件中查找对应内容生成方法

public interface PeopleMapper extends BaseMapper{
//mybatisplus的dao层继承baseMapper生成的动态代理类就会有基本CRUD方法
//这个方法用于mabatis的传统方法对应下面配置文件 
	void myAddPeople(People people);
}

 

5.在com.cq.mybatis包下建一个peopleMapper.xml配置文件


//对应dao中的myAddPeople方法
	
		insert into people(id,first_name) values(#{id},#{firstName})
	

 

6.新建service层PeopleService

@Service
public class PeopleService extends ServiceImpl{

	public void addPeople(People people){
		baseMapper.myAddPeople(people);
	}
}

 PeopleService继承了ServiceImpl,mybatisplus通过这种方式为我们注入了PeopleMapper,这样可以使用ServiceImpl默认为我们提供的许多方法,也可以调用我们自己在dao层编写的操作数据库的方法

 

7.写一个类测试一下

public class PeopleAction {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatisplus.xml");
		PeopleService service = (PeopleService) context.getBean("peopleService");
//service自带selectById方法
		People people = service.selectById(1);
		System.out.println(people);
	}
}

 

个人觉得在多是进行单表操作的系统中可以用mybatis-plus搞得清爽些,其他的没必要

 

你可能感兴趣的:(mybatis)