Mybatis注解访问数据库(@SelectProvider、@UpdateProvider、@InsertProvider和@DeleteProvider)

Mybatis注解访问数据库

@SelectProvider、@UpdateProvider、@InsertProvider和@DeleteProvider

1.java整合SSM框架中,mybatis的使用大多是通过在Mapper接口定义方法操作 访问数据库的方法,在对应的mapper.xml文件中进行Sql的组装拼接处理,实现和数据库的交互。

2.标题中的四个注解也是mybatis提供的,是mybatis3中增加新特性。

3.示例展示:这里以 @SelectProvider为例,其他注解操作类似。

4.代码示例,如下:

控制器代码:

> @Controller
> 
> @RequestMapping("/sql") 
> public class SqlTestController {    
> 
> @Autowired    
> private MySqlMapper mySqlMapper;   
> @RequestMapping(value = "/exe", method = RequestMethod.POST)
> @ResponseBody     
> public ResponseDto queryKind(@RequestBody List<String> list) {
> String s = ls.get(0);      
> List data = mySqlMapper.selectAll(s);
> return ResponseUtil.buildVoByResponseCode(ResponseCode.CODE_SUCCESS,data);
>             }
>   }

Mapper代码:

public interface MySqlMapper {

//@ResultMap :内是Mapper.xml文件内的映射 <resultMap>标签内的ID的值通过制定全路径,对反参进行映射。

@ResultMap("com.xxx.xxx.xxx.CommercialPlatformManageTableMapper.BaseResultMap")   

@SelectProvider(type = SqlProvider.class, method = "selectAll")  

  List<CommercialPlatformManageTable> getAll(String str);

}

Sql处理代码:

public class SqlProvider {   
 //类,必须要能够通过无参的构造函数来初始化。
// method参数指定的方法,必须是public的,返回值必须为String,可以为static。    
//针对不同的数据库操作提供对应的方法
public String selectAll(String sql) {      
	return sql;   
 }   

 public String updateMessage(String sql) {     
   return sql;   
 }   

 public String deleteMessage(String sql) {       
 	return sql;    
     }
}

补充:

具体的流程是:示例中 getAll()方法的入参值,会传递给 @SelectProvide注解指定的类中方法内,也就是selectAll()方法中,在方法内对入参进行组装,最后必须返回一条String 类型的sql语句,而返回值则

5.以上个人理解,如有错误,还请指正~

发布了1 篇原创文章 · 获赞 0 · 访问量 8

猜你喜欢

转载自blog.csdn.net/javayangyang123/article/details/105722898