使用Mybatis接口开发

文章目录

目录


前言

公司项目用到了mybatis开发接口,虽然很简单,但是mybatis不是特别熟悉,这里学习一下


一、Mybatis接口绑定的两种方式

1.接口绑定实现方式

        就是在接口的方法上加上@Select,@update@Insert@Delete等注解

  1. @select注解介绍:
    1. 简便,能快速去操作sql,它只需要在mapper方法中加入@select,然后在括号中写入需要实现的sql语句即可
    2. 另外一种方式就是想我们通常写的xml类似,在注解中使用等相关的标签来实现我们复杂的语句,但是必须在外面一层用标签将sql语句含进去.(不推荐,当条件比较复杂时,字符串中难免会出现很多错误)
    3. 目的是取代xml中的select标签,只作用在方法上面.下面看一下@Select注解的源码介绍:Selet注解只能修饰方法,@select注解的值是字符数组 虽然@Select注解的值是字符数组,但是真正生效的应该是最后那条SQL语句,这一点请大家要留意一下
  2.  @update注解介绍:

    1. 更新参数

2.XML方式的用法

        mybatis的强大之处就在于自定义的SQL语句,映射器的xml文件方式相比JDBC简单,节省代码量(好家伙前几天刚学的jdbc白学了,学编程经典白学)

  1. 先创建Mapper.java接口文档
  2. 创建Mapper.xml配置文件(注意mapper接口文件的函数名要和xml配置文件中id的名字要匹配)
  3. 在全局配置文件中配置映射路径
    1. 全局配置文件一般有三种:application.properties appliccation.yaml application.yml
    2. yml后缀的文件配置更加简便,本次项目的全局配置文件也是这个格式
  4. XML开发方式规范
    1. 在mapper.xml中namespace命令空间等于Mapper接口的全路径名
    2. Mapper.java接口中的方法名和Mapper.xml中的Statement的Id一致
    3. Mapper.java接口中方法的参数类型和Mapper.xml中parameterType的制定类型一致
    4. Mapper.java接口中方法的返回值类型和Mapper.xml中的resultType制定的类型一致

二、注解方式的用法

  1. 注解形式是直接将SQL写在接口方法上
  2. 优点:效率很高
  3. 缺点:SQL有变动时需要重新编译代码
  4. 在mybatis注解的SQL中,基本的注解:@Select,@Update,@Delete,@Insert
  5. @Data注解相当于给注解的对象所有属性全部创建get/set和tostring方法,提升代码的整洁性

零散的知识点:

  1. @RestController意思是return的数据都变成json的格式,返回到前端,但是不会跳转页面.如果想跳转页面的话,就需要把RestController改成Controller,就会跳转页面了
  2. @Resource和@Autowired的区别:
    1. 他们都可以用来装配bean,都可以用于字段或者setter方法()
    2. @Autowired默认按照类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false.
    3. @Resource默认按名称装配,当找不到与名称匹配的bean时才会按照类型进行装配.名称可以通过name属性指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,当注解写在setter方法上时,默认取属性名进行装配
    4. 注意:如果name属性一旦制定,就只会按照名称进行装配
    5. @Autowire和@Qualifier配合使用效果和@Resource一样

总结

对于基于mybites的开发的API接口有了更深的理解,能看懂API逻辑,但还写不出来,争取明天能写出来吧

参考和学习文档:

Spring Boot+mybatis-plus之@Select注解 - 简书

Mybatis使用_mybatis接口实现相关说明_YEEYang12的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一款优秀的ORM框架,支持XML和注解两种方式进行SQL映射配置。在使用MyBatis进行接口开发时,我们可以通过注解方式或XML方式来定义SQL语句,然后通过MyBatis提供的SqlSession执行SQL语句,最终将结果映射为Java对象返回。 下面是一个使用注解方式定义SQL语句的示例: ```java public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(int id); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") int addUser(User user); @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}") int updateUser(User user); @Delete("DELETE FROM user WHERE id = #{id}") int deleteUser(int id); } ``` 在上面的示例中,我们使用了@Select、@Insert、@Update和@Delete注解来定义了查询、插入、更新和删除操作的SQL语句。其中,#{}表示占位符,MyBatis会将其替换为对应参数的值。 接下来是一个使用XML方式定义SQL语句的示例: ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.mapper.UserMapper"> <select id="getUserById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> <insert id="addUser" parameterType="com.example.entity.User"> INSERT INTO user(name, age) VALUES(#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.entity.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete> </mapper> ``` 在上面的示例中,我们使用了<select>、<insert>、<update>和<delete>标签来定义了查询、插入、更新和删除操作的SQL语句。其中,#{id}、#{name}和#{age}都是占位符,MyBatis会将其替换为对应参数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值