天天看点

如何简易的上手mybatis

前段时间发现了一个比较投机的方式来使用mybatis,这种方式可以让人觉得我确实是使用的mybatis啊的感觉,实际上又不是。我们都知道,Mybatis相比于直接用sql语句来查询写起来有点复杂,因为mybatis首先得有xml文件,然后映射到mapper,还得有Dto,最后在供service层调用,这样一套写下来,需要头脑比较清晰才不会出bug,否则不是这里写错了就是那里写错了。在这里,我给一个方法,使得大家似乎用了mybatis,但是实际上写的是纯sql语句的方法,这个方法本来是用来处理那种很长的sql语句的,但是前几天我在做一个简单项目的时候为了省事儿,就直接那样用了,实践证明,那种方法在头脑比较昏的时候也是可以使用的,因为难度较低,哈哈。废话说多了,直接上代码

// SqlMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chaojilaji.secondhandshop.mapper.SqlMapper">
    <select id="sql" parameterType="String" resultType="HashMap">
        ${sql}
    </select>
    <select id="sqlOne" parameterType="String" resultType="HashMap">
        ${sql}
    </select>
</mapper>      

对应的mapper

@Mapper
@Component(value = "sqlMapper")
public interface SqlMapper {
    List<Map<String,Object>> sql(@Param("sql") String sql);
    Map<String,Object> sqlOne(@Param("sql") String sql);
}      

这个时候只需要注入到服务中

@AutoWired
SqlMapper sqlmapper;

public void demo(Integer uid){
  String sql = String,format("select * from userinfo where uid = %d", uid);
  List<Map<String,Object>> ans = sqlmapper.sql(sql);
}