mybatis 入门关于数据库配置错误问题

原创不易,转发请注明出处https://blog.csdn.net/weixin_43330377/article/details/109990062
废话:

我发现,对于刚开始学mybatis的人,最让人头疼的不是SQL的使用,而是数据库配置问题。
这些内容通常是一些既定的规则,老师只告诉我们copy某个规则,然后Edit相关的内容。
在我最开始学习的时候,往往这块最容易出错。
有一次我一晚上加一上午。数据库才配置成功。
简直把人逼疯啊。
但当我上机考试的时候又出现了同样的问题,以至于我在数据库配置问题耗费了大量的时间,结果依旧没有解决。我打开以前的项目,才完成了考试。
让我百思不得其解,明明是直接复制的啊!
数据库的连接问题成了我最大的心病,每次运行时候,都会提心吊胆。
于是我开始使用各种mybatis插件,但插件再好用,毕竟没办法解决最根本的问题。
于是我又一次开始寻找错误。

一、以下是我遇到的一些错误:

首先,我建议使用高版本的 jar包如:
mysql-connector-java-8.0.21.jar
下载地址: https://dev.mysql.com/downloads/connector/j/
Select Operating System:latform Independent 选择 操作系统选择独立于平台 即可。
在这里插入图片描述
可能是心理作用,但应该可以减少兼容性的问题,毕竟新人学习一般软件环境都是下新版而非旧版。

注意:修改之后一定要记得保存更新!不然可能运行的还是原来的程序。有时候试着重新启动项目,一些莫名其妙的问题也就解决了。

情况一:缺少JAR包

出现 Error building SqlSession的错误首先检查是否导入数据库连接驱动的JAR包,并且是否Build Path!!!
并且win+r输入services.msc
在这里插入图片描述
查看数据库是否在运行
在这里插入图片描述

这个错误尽管非常低级,但依旧会有很多人犯。

情况二:数据池配置(连接信息到核心配置文件中)

mysql-connector-java-8.0.21:

<environments default="default">
	<environment id="default">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="com.mysql.cj.jdbc.Driver" />
			<property name="url" value="jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC" />
			<property name="username" value="root" />
			<property name="password" value="123" />
		</dataSource>
	</environment>
</environments>

3306/后面添自己数据库的名字.
之前我copy的一直是从前的项目,数据库名字都一样,直到有一次我复制了别人的配置文件,告诉我找不到“XXX”,我思考半天,才反应过来是这个地方写错了。
mysql-connector-java-5.x.x

	<environments default="default">
	<environment id="default">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="com.mysql.jdbc.Driver" />
			<property name="url" value="jdbc:mysql://localhost:3306/ssm" />
			<property name="username" value="root" />
			<property name="password" value="123" />
		</dataSource>
	</environment>
</environments>		

不同之处
在这里插入图片描述

在这里插入图片描述
需要留意的是:
localhost:3306/ssm中ssm是否替换成自己的数据库名字。
其中localhost:3306也可能不同,具体的根据数据库账户而定,不过新人应该一般不会去改这个吧。说多了,反倒更容易错
username,password是否都是自己的
此处错误信息:
url:

org.apache.ibatis.exceptions.PersistenceException: Error updating
database. Cause: java.sql.SQLSyntaxErrorException: Unknown database
‘ss’ Cause: java.sql.SQLSyntaxErrorException: Unknown database ‘ss’

username:

org.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: java.sql.SQLException: Access denied
for user ‘rot’@‘localhost’ (using password: YES) Cause:
java.sql.SQLException: Access denied for user ‘rot’@‘localhost’ (using
password: YES)

password:

org.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: java.sql.SQLException: Access denied
for user ‘root’@‘localhost’ (using password: YES) Cause:
java.sql.SQLException: Access denied for user ‘root’@‘localhost’
(using password: YES)

还有注意标签等是否正确,不过这个应该很少出错,毕竟都是直接copy

情况三:包名路径

  <typeAliases> 
    <package name="com.vo"/> 
</typeAliases>
--------------------------------
    <mappers>
    <package name="com.mapper"/>
</mappers>

package name 是否正确。
typeAliases 置于最前,mappers置于最后。
且在Mapper.xml中,namespace必须写全路径。按Ctrl且左击鼠标,是否可以点进去,若可以则正确。
若是:

   <mappers>
	<mapper resource="com/pojo/EmpMapper.xml"/>
</mappers>

也要注意路径,不过这种情况下Mapper.xml中,namespace要求就没有那么严格了。确保唯一即可。
此处错误信息:

org.apache.ibatis.binding.BindingException: Type interface
com.mapper.StudentMapper is not known to the MapperRegistry. at
org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at
org.apache.ibatis.session.Configuration.getMapper(Configuration.java:655)

情况四:DTD约束

首先:一定要记得,将约束加进去!!!
window->Preferences->XML Calalog
在这里插入图片描述
约束地址分别与PUBLIC 后相对应 选择public ID
mybatis-config.xml
在这里插入图片描述
Mapper.xml
在这里插入图片描述
约束别添加反,mapper是mapper,config里面是config
Mapper.xml
在这里插入图片描述
mybatis-config.xml在这里插入图片描述
此处错误信息:

Error building SqlSession. Cause:
org.apache.ibatis.builder.BuilderException: Error creating document
instance. Cause: org.xml.sax.SAXParseException; lineNumber: 3;
columnNumber: 16; 文档根元素 “configuration” 必须匹配 DOCTYPE 根 “null”。

情况五:JDK版本问题

博主今年上大三,我发现关于如何引用project的问题还有很多人都不清楚。
因为往往会产生如下图的红X。
首先检查JAR包是否,且进行build ,若依旧全红,那可能就是JDK版本的问题了

在这里插入图片描述
右击你的项目——>properties
在这里插入图片描述
把这个版本的jdk删掉,点击remove
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记得点击APPLY

二、 学会自己检查错误

总结的再多,总归是别人的错误,错误的出现总是千奇百怪,每个人会遇到不同的错误,学会检查错误并解决才是最有效的方法。
通常来说,我都看这两个方面
一个是JUnit的报错
在这里插入图片描述
一个是日志(一般参数传值问题看这个)
在这里插入图片描述

这两个看懂,首先就可以分析出较为具体的错误,根据具体的错误寻找解决办法,总比大海捞针似的搜索要简单吧!
看不懂英文,拿百度翻译就好了!换成中文之后,错误是很容易找到的!
在这里插入图片描述
无视我这个低级错误,sql语句有问题,因为之前改了 一下数据库表的属性,但是mapper.xml中SQL语句忘改了

运行成功:
在这里插入图片描述
在这里插入图片描述

注:本文贴出的错误信息仅为前两行的关键字,我觉得如果有耐心看完全部错误信息,应该也就可以自己解决问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值