Mybatis使用注解代替XML配置,动态加载sql

1.MyBatis3简介

参考网站:http://www.mybatis.org/mybatis-3/zh/index.html

​ MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2.Sql查询的小Demo

​ 这个执行sql的文件的Demo主要执行简单的相关的CRUD的动态的sql,可以显示相关的数据,但是需要改换为相关的数据库的配置.这个请自行修改yml的配置.这里显示的只是数据结果的text的格式,显示的结果比较简单,主要用于简单的sql语句的查询等相关的操作.

Mybatis使用注解代替XML配置,动态加载sql_第1张图片
test2.gif

3.相关代码

SqlController
@RestController
@Slf4j
public class SqlController {

    private SqlService sqlService;

    @Autowired
    public SqlController(SqlService sqlService) {
        this.sqlService = sqlService;
    }

    /**
     * 这里传入sql语句
     */
    @RequestMapping("queryAll")
    public List queryAll(String sql) {
        log.info("sql->" + sql);
        List demoList = sqlService.queryAll(sql);
        return demoList;
    }

    /**
     * 增加
     * @param sql
     * @return
     */
    @RequestMapping("insertDemo")
    public String  insertDemo(String sql) {
       sqlService.insertDemo(sql);
        return "插入成功,语句为:"+sql;
    }
    @RequestMapping("updDemo")
    public String  updDemo(String sql) {
       sqlService.updDemo(sql);
        return "修改成功,语句为:"+sql;
    }
    @RequestMapping("delDemo")
    public String  delDemo(String sql) {
       sqlService.delDemo(sql);
        return "删除成功,语句为:"+sql;
    }


    @RequestMapping("test")
    public String test01() {
        return "test Demo!";
    }

}

SqlServiceImpl
@Service
public class SqlServiceImpl implements SqlService {

    @Autowired
    private SqlDao sqlDao;

    @Override
    public List queryAll(String sql) {

        List demos = sqlDao.queryAll(sql);

        return demos;
    }

    @Override
    public void insertDemo(String sql) {
        sqlDao.insertDemo(sql);
    }

    @Override
    public void updDemo(String sql) {
        sqlDao.updDemo(sql);
    }

    @Override
    public void delDemo(String sql) {
        sqlDao.delDemo(sql);
    }
}

4.注解查询相关

注意 我们的Mapper接口可以使用插值表达式:这里的 #{id}可以获得@Param("id")中的值 从而查找出来,ResultType为返回的相应的类
 @Select("select * from demo where id = #{id}")
 @ResultType(Demo.class)
 Demo selectById(@Param("id")String id);

你可能感兴趣的:(Mybatis使用注解代替XML配置,动态加载sql)