博客
关于我
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/

你可能感兴趣的文章
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
MySQL 导出数据
查看>>
mysql 将null转代为0
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
MySQL 常见的 9 种优化方法
查看>>
MySQL 常见的开放性问题
查看>>
Mysql 常见错误
查看>>
mysql 常见问题
查看>>
MYSQL 幻读(Phantom Problem)不可重复读
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>