springboot|springboot以注解方式集成mybatis

本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~
https://www.javastudy.cloud

springboot集成mybatis

主要有以下几大步骤

  1. 引入mybatis相关依赖

  2. 编写面向java的mapper接口文件

  3. 编写sql的provider文件(mybatis有两种方式去维护sql,一种是xml的方式,一种是注解+provider的方式,本DEMO以provider的方式为主)

引入mybatis相关依赖

这一步在上文中,我们已经引过了,gradle依赖如下:

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1'runtimeOnly 'mysql:mysql-connector-java'

配置数据库

spring.datasource.url=jdbc:mysql://localhost:33306/javastudy?characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=GMT%2B8spring.datasource.username=rootspring.datasource.password=javastudyspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

编写面向java的mapper接口文件

代码如下所示:

/** * 注意两个注解, @Mapper是代表这个类是Mybatis中的Mapper * 还有@Repositor是代表这个类是spring的bean * @Author https://www.javastudy.cloud * @CreateTime 2019/11/4 **/@Mapper@Repositorypublic interface TestDAO {
    /**     * 这里简单的sql直接通过@Select注解来写了     * 稍复杂一点的要通过SelectProvider来写     * @return     */    @Select("select * from test")    public List<Map> listTests();
    /**     * 复杂的sql可以通过这种@SelectProvider去指定一个sql维护类     * @param id     * @return     */    @SelectProvider(type = TestProvider.class)    public Map getById(@Param("id") Long id);
    /**     * 注意Provider要实现ProviderMethodResolver这个接口     * 为方便,直接使用了内部类的方式,实际开发中,一般会单独写一个类     */    class TestProvider implements ProviderMethodResolver {        /**         * sql提供类,方法名一定要和mapper里面的方法名一致         * @param id         * @return         */        public String getById(@Param("id") Long id){            SQL sql = new SQL(){                {                    SELECT("*");                    FROM("test");                    WHERE("id = "+id);                }            };            return sql.toString();        }    }}

测试的Controller类

代码如下:

/** * @Author https://www.javastudy.cloud * @CreateTime 2019/11/4 **/@RestControllerpublic class MybatisController {
    @Autowired    private TestDAO testDAO;
    /**     * 先注入testDAO,然后就可以直接调用里面的方法了     * @return     */    @RequestMapping("mybatis/testMybatisByAnnotation")    public String testMybatisByAnnotation(){        List<Map> maps = testDAO.listTests();        return JSON.toJSONString(maps);    }
    /**     * 注意这里的传参,使用了@PathVariable,直接通过url传参     * 这种传参方式一般适用于RestFul接口,以资源为导向的开发     * 在实际工作中,看团队风格而使用     * @param id     * @return     */    @RequestMapping("mybatis/testMybatisByProvider/{id}")    public String testMybatisByProvider(@PathVariable Long id){        Map map = testDAO.getById(id);        return JSON.toJSONString(map);    }    }

结果如下:

DEMO总评

与XML方式的mybatis相比,注解方式的mybatis更多的需要把sql维护在java代码中,其中有些直接拼接的地方对于防XSS攻击会弱些,这些需要开发者注意. 少年,加油吧!!

DEMO下载

https://img.hacpai.com/file/2019/11/demospringbootmybatis-37e33b2d.zip

可添加小刀微信获取源码

往期热文

springboot|springboot连接mysql数据库

springboot|新建Controller和RestController接收请求

springboot|在线生成一个基础的springboot项目

docker|docker安装mysql数据库

点在看的都没有bug!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值