博客
关于我
MyBatis的CRUD
阅读量:609 次
发布时间:2019-03-13

本文共 1704 字,大约阅读时间需要 5 分钟。

MyBatis CRUD操作指南

一、关于Namespace

在MyBatis中,namespace的作用已从可选扩展到了必须配置。 namespaces的主要目的是通过指定更全面的限定名来区分不同语句,同时实现接口绑定。即使目前不需要接口绑定,也应遵守这一规定,以防未来需求变动。

  • Namespace的作用

    给予更长的全限定名,用于区分不同的语句,同时实现接口绘制。建议将namespace放在对应的Java包命名空间中,使代码更整洁、易于管理。

  • 命名解析规则

    MyBatis采用特定的规则解析名称。一直接用全限定名(如com.mypackage.MyMapper.selectAllThings)进行查找和使用。如果使用短名称(如selectAllThings),需确保其唯一性。如果存在多个相同名称的映射,必须使用全限定名。

  • 注意事项

    配置文件中的namespace必须与Mapper接口或Dao接口的完整包名保持一致,避免冲突。


二、CRUD操作

1. SELECT操作
  • 使用

    SELECT是MyBatis中最常用且功能最全面的标签,可为每条SQL语句提供多种属性配置。

  • SQL语句特性

    • 返回类型:支持具体类名或别名。
    • 输入参数类型:可使用万能的Map类型,适用于不同参数需求。
    • 唯一标识符:依赖namespace中的唯一标识符。
  • 示例

    该语句接受一个int类型参数,返回一个HashMap,键为列名,值为对应结果。

  • 命名约束

    • 实体类字段与数据库字段不一致时,需在接口参数中添加@Param注释,以指定表达式别名。如:
      User selectUsernp(@Param("name") String name, @Param("password") String pw);
    • 参数较多时,可使用Map类型传递多个参数,简化查询逻辑。
  • 模糊查询示例

    • 方法一:在Java代码中使用通配符。
    • 方法二(不推荐):在SQL语句中拼接通配符,注意防范SQL注入。
2. INSERT操作
  • 使用

    INSERT操作类似于SELECT,直接可通过示例测试。

  • 接口定义

    int addUser(User user);
  • XML配置

    INSERT INTO user (id, name, password) VALUES (#{id}, #{name}, #{password})
  • 自动生成主键支持

    • 若数据库支持自生主键(如MySQL、SQL Server),可设置useGeneratedKeys="true",并指定keyProperty属性。
    • 对多行插入支持,可传入集合或数组,返回自生主键。
  • 主键生成方式(不支持自生主键时):

    SELECT CAST(RANDOM()*1000000 AS INTEGER) FROM SYSIBM.SYSDUMMY1
    INSERT INTO user (id, name, password) VALUES (#{id}, #{name}, #{password})
3. UPDATE和DELETE操作
  • 操作特性

    UPDATE和DELETE操作与INSERT功能相似,延续相同配置方式。

  • 示例

    UPDATE user SET name=#{name}, password=#{password} WHERE id=#{id}
    int updateUser(User user);
    DELETE FROM user WHERE id=#{id}
    int dedate(@Param("id") int id);
  • 注意事项

    在WHERE条件中明确指定主键或唯一标识列,确保数据正确删除或更新。

转载地址:http://iezaz.baihongyu.com/

你可能感兴趣的文章
Openresty框架入门详解
查看>>
openshift搭建Istio企业级实战
查看>>
ORACEL学习--理解over()函数
查看>>
oracle script
查看>>
Oracle 递归
查看>>
oracle--用户,权限,角色的管理
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>
Oracle中merge into的使用
查看>>
oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
查看>>
oracle中sql的case语句运用--根据不同条件去排序!
查看>>
oracle中关于日期问题的汇总!
查看>>
Oracle中常用的语句
查看>>
oracle典型安装失败,安装oracle 10失败
查看>>