本文共 1704 字,大约阅读时间需要 5 分钟。
在MyBatis中,namespace的作用已从可选扩展到了必须配置。 namespaces的主要目的是通过指定更全面的限定名来区分不同语句,同时实现接口绑定。即使目前不需要接口绑定,也应遵守这一规定,以防未来需求变动。
Namespace的作用:
给予更长的全限定名,用于区分不同的语句,同时实现接口绘制。建议将namespace放在对应的Java包命名空间中,使代码更整洁、易于管理。命名解析规则:
MyBatis采用特定的规则解析名称。一直接用全限定名(如com.mypackage.MyMapper.selectAllThings
)进行查找和使用。如果使用短名称(如selectAllThings
),需确保其唯一性。如果存在多个相同名称的映射,必须使用全限定名。注意事项:
配置文件中的namespace必须与Mapper接口或Dao接口的完整包名保持一致,避免冲突。使用:
SELECT是MyBatis中最常用且功能最全面的标签,可为每条SQL语句提供多种属性配置。SQL语句特性:
示例:
该语句接受一个int类型参数,返回一个HashMap,键为列名,值为对应结果。
命名约束:
User selectUsernp(@Param("name") String name, @Param("password") String pw);
模糊查询示例:
使用:
INSERT操作类似于SELECT,直接可通过示例测试。接口定义:
int addUser(User user);
XML配置:
INSERT INTO user (id, name, password) VALUES (#{id}, #{name}, #{password})
自动生成主键支持:
useGeneratedKeys="true"
,并指定keyProperty
属性。主键生成方式(不支持自生主键时):
SELECT CAST(RANDOM()*1000000 AS INTEGER) FROM SYSIBM.SYSDUMMY1 INSERT INTO user (id, name, password) VALUES (#{id}, #{name}, #{password})
操作特性:
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/