当前位置: 首页 > news >正文

数据库操作的方法签名

数据库操作的方法签名 在 MyBatis 或 JPA 等ORM框架的上下文中,指的是在 Mapper 接口 或 Dao 接口 中声明的、用于执行数据库操作的方法的结构定义

它主要由以下几个部分组成:

一、方法签名的核心组成部分

一个典型的数据库操作方法签名包括:

  1. 访问修饰符 (public)

  2. 返回类型 (intvoidUserList<User> 等)

  3. 方法名称 (insertdeleteByIdselectUserByName 等)

  4. 参数列表 ((User user)(Integer id)(String name, Integer age) 等)

  5. 可选的注解 (@Param@Insert@Select 等)


二、不同数据库操作的方法签名示例

我们结合 MyBatis 的 Mapper 接口来看一些具体的例子。

1. 插入操作 (Insert)

 
// 返回插入的行数(通常为1)
int insert(User user);// 返回插入的行数,并且要求获取自增主键(主键值会回填到参数对象中)
int insert(User user); // 配合XML中的 useGeneratedKeys="true"// 返回布尔值表示成功与否(不常用,但可行)
boolean insertUser(User user);

2. 删除操作 (Delete)

 
// 根据主键删除,返回删除的行数
int deleteById(Integer id);// 根据实体条件删除,返回删除的行数
int deleteByEntity(User user);// 根据Map条件删除
int deleteByMap(Map<String, Object> params);

3. 更新操作 (Update)

 
// 更新一个实体,返回受影响的行数
int update(User user);// 根据主键更新
int updateById(User user);

4. 查询操作 (Select) - 返回类型最丰富

返回单个对象:

 
// 根据主键查询,可能返回null
User selectById(Integer id);
User getById(Integer id); // get和select通常可以互换// 根据条件查询单个对象
User selectByUsername(String username);
User selectByUsernameAndPassword(@Param("username") String username, @Param("password") String password); // 多参数使用@Param

返回集合(列表):

 
// 查询所有用户
List<User> selectAll();
List<User> findAll();// 根据条件查询列表
List<User> selectByAgeGreaterThan(Integer age);
List<User> selectByEntity(User user); // 以非空属性作为条件
List<User> selectByMap(Map<String, Object> params);

返回特殊类型:

 
// 查询数量
Long selectCount();// 查询某个字段
String selectUsernameById(Integer id);// 查询结果封装到Map中(key为记录的某个字段,value为实体)
@MapKey("id") // 指定用id字段作为Map的key
Map<Integer, User> selectAllAsMap();

三、方法签名与 XML 映射的绑定规则

方法签名之所以能工作,是因为它与 Mapper XML 文件中的定义严格对应。MyBatis 通过以下规则进行绑定:

  1. 方法名 = SQL语句的id

     
    // 接口中的方法名
    User selectUserById(Integer id);
     
    <!-- XML中SQL的id必须与方法名一致 -->
    <select id="selectUserById" resultType="User">SELECT * FROM user WHERE id = #{id}
    </select>
  2. 参数类型 = parameterType

    • 如果只有一个参数,#{...} 里的名字可以任意,但通常与参数名一致。

    • 如果有多个参数,必须使用 @Param 注解#{...} 里的名字就是注解的值。

     
    // 多参数示例
    User selectByUsernameAndPassword(@Param("uname") String username, @Param("pwd") String password);
     
    <select id="selectByUsernameAndPassword" resultType="User">SELECT * FROM user WHERE username = #{uname} AND password = #{pwd}
    </select>
  3. 返回类型 = resultType / resultMap

    • 返回单个对象:resultType="User" 或 resultMap="UserMap"

    • 返回集合:同样是 resultType="User" 或 resultMap="UserMap",MyBatis 会自动识别并包装成 List。


四、在你项目中的具体例子

根据你之前的 BaseDao<T> 接口,我们可以看到一系列非常标准的方法签名:

java
public interface BaseDao<T>{// 插入:返回int,参数是泛型实体Tint insert(T entity);// 删除:返回void或int,参数是主键ID(Serializable或具体类型)void deleteById(Serializable id);// 更新:返回void或int,参数是泛型实体Tvoid update(T entity);// 查询单个:返回泛型T,参数是主键IDT getById(Serializable id);// 查询列表:返回List<T>,参数是Map或实体List<T> listByMap(Map<String,Object> params);List<T> listAllByEntity(T entity);
}

总结

数据库操作的方法签名的本质是:一个在Java接口中定义的、与Mapper XML文件中的SQL语句id一一对应的、包含了完整参数和返回类型信息的方法声明。

它的核心作用是建立Java方法调用和SQL语句执行之间的桥梁。MyBatis框架在运行时,会根据这个签名找到对应的SQL,将参数传递过去,并按照声明的返回类型来处理结果。

http://www.sczhlp.com/news/128074/

相关文章:

  • 知名高端网站建设服务商手机网站做的比较好的
  • 建设银行上虞支行网站专业网站建设特点分析
  • 如何申请一个网站 做视频直播抖音开放平台游戏
  • 购物网站大全分类上海建设工程咨询网查询
  • 网站建设基本流程包括htmlplay
  • 北京企业网站怎么建设如何提升顾客的体验和服务
  • wd设计视图可以做网站吗关于手机网站设计的若干想法
  • iis应用程序池与网站免费logo在线制作平台
  • 给企业做网站的好处wordpress安装是什么
  • 完整教程:第33章 AI在教育领域的应用
  • 泊头市做网站asp.net做网站头部和尾部_都用什么来实现
  • 做服装店网站的素材建筑工程承包网址大全
  • 网站开发和软件福州网站设计软件公司
  • html电影网站模板wordpress 整站模板
  • 新闻门户网站是什么建设酒类产品网站的好处
  • 孟村县网站建设价格有域名如何建设网站
  • 建网站淄博4399游戏网页版入口
  • 建设企业网站平台主要的目的是手机网站收费
  • 做网站 转行武义住房和城乡建设局网站
  • 湖南平台网站建设企业深圳个人网站设计
  • 易软通openWMS - 功能齐全的开源WMS
  • wordpress适合做网页东莞网络排名优化价格
  • 个体户做网站与公司好平面网站设计
  • 镇平微网站建设郑州包装设计公司都有哪些
  • 银川建企业模板网站wordpress <>
  • C# 中的 ReferenceEquals 方法 - 教程
  • 网站建设标准规范资溪县建设局网站
  • 可以做兼职的网站有哪些工作建设茶叶网站的目的
  • 有没有网站是免费做店招图片的网站负责人可以备案
  • 宁夏建设银行发行寄念币网站微商营销技巧