您的位置:首页 > 其它

在使用SSM中遇到的问题

2020-06-28 04:38 288 查看

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: