在使用SSM中遇到的问题

10 篇文章 0 订阅
本文介绍了在使用MyBatis时遇到的一些问题,包括如何处理传递多个参数时的注解需求,避免特定字段名称导致的错误,命名空间的唯一性设置,以及持久层接口与方法命名的规范,确保select ID与方法名对应,同时强调持久层方法不能同名(即使参数不同)。
摘要由CSDN通过智能技术生成

MyBatis

  1. 在持久层中,如果传递多个参数需要加上@Param注解,不然会报错
org.apache.ibatis.binding.BindingException: Parameter 'account' not found. Available parameters are [arg1, arg0, param1, param2]
public interface AdminDao {
	public Integer login(@Param("account") String account, @Param("password") String password);
}
  1. db.properties写登录名时不要写username=xxxx不然会报错,要换个名字
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user 'LM'@'localhost' (using password: YES))
java.sql.SQLException: Access denied for user 'LM'@'localhost' (using password: YES)

这么写

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/mis
jdbc.username=root
jdbc.password=xxxx
  1. 这里的命名空间一定要唯一,最好和dao接口或者实现类放在一个包里,要一个实实在在的持久层接口或者接口实现类,你按住ctrl+鼠标左它可以跳转,select的id要和持久层中的方法名对应
<mapper namespace="com.zj.mis.dao.AdminDao">
  <select id="login" parameterType="java.lang.String" resultType="java.lang.Integer">
    select aid from tb_admin where aname = #{account} and apwd=#{password}
  </select>

</mapper>
package com.zj.mis.dao;

import org.apache.ibatis.annotations.Param;

public interface AdminDao {
	public Integer login(@Param("account") String account, @Param("password") String password);
}
  1. 持久层中的方法不能同名(参数不一样也不行)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值