Mybatis注解和配置文件命名规范所引发的问题
2018-12-19 01:44:47来源:博客园 阅读 ()
最近做SSM项目,在编写完login方法后,运行测试就发生错误。
报错如下:
Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'Minli'@'localhost' (using password: YES)
根据提示,应该是Mysql的用户名和密码错误导致的问题,查看database配置文件,也没有发现问题。
database配置文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/hotel
username=root
password=root
然后查看了一下Dao接口:
1 package cn.hotel.dao; 2 3 import cn.hotel.entity.User; 4 import org.apache.ibatis.annotations.Param; 5 6 import java.util.List; 7 8 public interface UserDao { 9 public User login(@Param("username") String username, @Param("password") String password, @Param("status") Integer status); 10 11 public Integer add(User user); 12 13 public Integer update(User user); 14 15 public User getUserById(Integer id); 16 17 public List<User> getAllUser(); 18 }
很寻常的CRUD,应该不至于出现问题。
然后查看了Spring的配置文件,关于dataSource的配置是这样的:
1 <context:property-placeholder location="classpath:database.properties"/> 2 3 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 4 <property name="driverClassName" value="${driver}"/> 5 <property name="url" value="${url}"/> 6 <property name="username" value="${username}"/> 7 <property name="password" value="${password}"/> 8 </bean>
一直这样使用也没有问题。但是忽然发现一点,在配置文件中Mybatis的命名和@Param中参数的命名都是一致的,会不会是这个原因导致的呢。
于是修改database配置文件:
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/hotel
database.username=root
database.password=root
修改Spring配置文件dataSource部分:
<context:property-placeholder location="classpath:database.properties"/> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${database.driver}"/> <property name="url" value="${database.url}"/> <property name="username" value="${database.username}"/> <property name="password" value="${database.password}"/> </bean>
问题得到解决!
总结:
在使用Mybatis带@Param参数注解功能时,要避免名称和数据库配置文件对应的字段名称相同,否则就会出现无法连接数据库的情况。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--注解 2020-06-11
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- Spring Boot 实现配置文件加解密原理 2020-06-08
- Java 必须掌握的 12 种 Spring 常用注解! 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash