iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatis注解式开发映射语句怎么使用
  • 837
分享到

MyBatis注解式开发映射语句怎么使用

2023-07-05 06:07:26 837人浏览 八月长安
摘要

今天小编给大家分享一下mybatis注解式开发映射语句怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言MyBati

今天小编给大家分享一下mybatis注解式开发映射语句怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

MyBatis中也提供了注解式开发⽅式,采⽤注解可以减少sql映射⽂件的配置。 当然,使⽤注解式开发的话,sql语句是写在java程序中的,这种⽅式也会给sql语句的维护带来成本。

使⽤注解编写复杂的SQL是这样的:

@Update("<script> update table_name set grade='三年级'”+" <if test=\ "name != null\"> , name = #{name} </if> ”+" <if test=\ "sex != null\"> , sex = #{sex}</if>”+" where num = #{num}</script>")void update(Student student);

原则:简单sql可以注解,复杂sql使⽤xml!使用注解式开发以后三兄弟之一的SqlMapper.xml文件就不需要了!

MyBatis注解式开发映射语句怎么使用

1. @Insert注解

二兄弟之一CarMapper接口,用来编写方法

使用@Insert的注解方式,在注解上就可以写上SQL语句,对于SQL语句当中的变量就是pojo类Car对应的变量名

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Insert;public interface CarMapper {    // 使用注解式开发,插入数据    @Insert("insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})")    int insert(Car car);}

二兄弟之二CarMapperTest,用来测试

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class CarMapperTest {    @Test    public void testInsert(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        // 创建Car对象        Car car = new Car(null, "666", "丰田霸道", 32.0, "2023-1-9", "燃油车");        int count = mapper.insert(car);        System.out.println(count);        sqlSession.commit();        sqlSession.close();    }}

执行结果:

MyBatis注解式开发映射语句怎么使用

2. @Delete注解

二兄弟之一CarMapper接口,用来编写方法

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Insert;public interface CarMapper {    // 使用注解式开发,删除数据    @Delete("delete from t_car where id = #{id}")    int deleteById(Long id);}

二兄弟之二CarMapperTest,用来测试

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class CarMapperTest {   @Test    public void testDeleteById(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        int count = mapper.deleteById(40L);        System.out.println(count);        sqlSession.commit();        sqlSession.close();    }}

执行结果:

MyBatis注解式开发映射语句怎么使用

3. @Update注解

二兄弟之一CarMapper接口,用来编写方法

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Insert;public interface CarMapper {    // 使用注解式开发,更新数据    @Update("update t_car set car_num=#{carNum},brand=#{brand},guide_price=#{guidePrice},produce_time=#{produceTime},car_type=#{carType} where id = #{id}")    int update(Car car);}

二兄弟之二CarMapperTest,用来测试

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class CarMapperTest {   @Test    public void testUpdate(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        // 创建Car对象,根据id进行更新        Car car = new Car(34L, "666", "丰田霸道", 32.0, "2023-1-9", "燃油车");        int count = mapper.update(car);        System.out.println(count);        sqlSession.commit();        sqlSession.close();    }}

执行结果:

MyBatis注解式开发映射语句怎么使用

4. @Select注解

二兄弟之一CarMapper接口,用来编写方法

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Insert;public interface CarMapper {    // 使用注解式开发,查询数据    @Select("select * from t_car where id = #{id}")    Car selectById(Long id);}

二兄弟之二CarMapperTest,用来测试

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class CarMapperTest {   @Test    public void testSelectById(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        Car car = mapper.selectById(41L);        System.out.println(car);        sqlSession.close();    }}

执行结果:

MyBatis注解式开发映射语句怎么使用

5. @Results注解

我们知道数据库表中的字段和pojo类的属性名有的是不一样的,我们之所以能够完整的查出数据,是因为在核心配置文件mybatis-config.xml当中配置了:启用驼峰命名⾃动映射

    <!--启⽤驼峰命名⾃动映射-->    <settings>        <setting name="mapUnderscoreToCamelCase" value="true"/>    </settings>

如果我们不启用,不对应的字段就是null,查询的数据如下:

MyBatis注解式开发映射语句怎么使用

那还有什么办法呢?还可以使用@Results注解!

注:从这里也能看出,使用注解的方式开发,对于简单点的SQL还行,对于稍微复杂的查询语句就太麻烦了!

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.*;public interface CarMapper {    // 使用注解式开发,查询数据    @Select("select * from t_car where id = #{id}")    @Results({            @Result(property = "id",column = "id"),            @Result(property = "carNum",column = "car_num"),            @Result(property = "brand",column = "brand"),            @Result(property = "guidePrice",column = "guide_price"),            @Result(property = "produceTime",column = "produce_time"),            @Result(property = "carType",column = "car_type"),    })    Car selectById(Long id);}

这样计算我们不启用驼峰命名⾃动映射,也能正常查询数据

MyBatis注解式开发映射语句怎么使用

以上就是“MyBatis注解式开发映射语句怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: MyBatis注解式开发映射语句怎么使用

本文链接: https://www.lsjlt.com/news/349949.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis注解式开发映射语句怎么使用
    今天小编给大家分享一下MyBatis注解式开发映射语句怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言MyBati...
    99+
    2023-07-05
  • MyBatis注解式开发映射语句详解
    目录前言1. @Insert注解2. @Delete注解3. @Update注解4. @Select注解5. @Results注解前言 MyBatis中也提供了注解式开发⽅...
    99+
    2023-02-24
    MyBatis注解式开发 MyBatis注解 MyBatis注解映射语句
  • mybatis中的SQL怎么利用注解进行映射
    今天就跟大家聊聊有关mybatis中的SQL怎么利用注解进行映射,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。结果集分页有时我们需要处理海量数据,由于数据量太大,所以不能一次取出所有...
    99+
    2023-05-31
    mybatis
  • Mybatis注解开发@Select执行参数和执行sql语句的方式
    执行传参 @Select 是 Mybatis 框架中的一个注解,用于执行 SQL 查询语句,并把查询结果映射到指定的 Java 对象中。 具体来说,@Select 注解会将注解中的 SQL 查询语句交给 Mybatis 框架进行解...
    99+
    2023-09-17
    mybatis sql java
  • 怎么使用MyBatis高级映射ResultMap解决属性问题
    本篇内容介绍了“怎么使用MyBatis高级映射ResultMap解决属性问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ResultMap...
    99+
    2023-07-05
  • 关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题
    1,问题描述 上一篇快速入门MyBatis文章中,在编写SQL映射文件时,出现了SQL映射文件的警告提示的问题,这篇文章就是为了解决这个问题! 2,为什么出现这样的问题 之所以会出现...
    99+
    2023-05-18
    MyBatis简化 SQL语句警告
  • 如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式
    这篇文章给大家分享的是有关如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Mybatis注解完成输入参数为list的SQL语句拼接首先将lis...
    99+
    2023-06-21
  • 怎么使用Idea搭建全注解式开发的SpringMVC项目
    这篇“怎么使用Idea搭建全注解式开发的SpringMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea...
    99+
    2023-07-05
  • 怎么使用Spring注解@Profile实现开发环境/测试环境/生产环境切换
    这篇文章主要介绍了怎么使用Spring注解@Profile实现开发环境/测试环境/生产环境切换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Spring注解@Profile实现开发环境/测试环境/生产环...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作