看看图片里的配置有什么问题么?
url=jdbc……我擦,我怎么这么不小心,换来一整天的不得安宁,上网各种搜bug,把mysql驱动配置到classpath中,jar包放进jdkjre里面还是不行妈的,真是逼得我跳脚骂娘啊,可是这不是我这一天唯一傻逼的错误,此处错误报错信息如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" . SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http: //www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: No suitable driver found for url=jdbc:mysql: //localhost:3306/test ### The error may exist in mybatisTest/com/mapping/UserMapper.xml ### The error may involve mybatisTest.com.domain.UserMapper.getuser ### The error occurred while executing a query ### Cause: java.sql.SQLException: No suitable driver found for url=jdbc:mysql: //localhost:3306/test at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java: 30 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 150 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 141 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java: 77 ) at mybatisTest.com.test.Test1.main(Test1.java: 29 ) Caused by: java.sql.SQLException: No suitable driver found for url=jdbc:mysql: //localhost:3306/test at java.sql.DriverManager.getConnection(DriverManager.java: 689 ) at java.sql.DriverManager.getConnection(DriverManager.java: 208 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java: 201 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java: 196 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java: 93 ) at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java: 385 ) at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java: 89 ) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java: 138 ) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java: 60 ) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java: 337 ) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java: 84 ) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java: 62 ) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java: 325 ) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java: 156 ) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java: 109 ) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java: 83 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 148 ) ... 3 more |
上面说到这是致命的错误但这不是唯一的错误还有别的错误存在着
在解决bug的扎耳挠腮左突右撞的过程中,我还犯下了如下种种的失误用外部jdbc.properties文件来存储数据库连接信息
内容如下
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
username=root
password=root
没毛病吧?对没毛病
先是这样的配置文件报错了
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 33; columnNumber: 17; 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64)
at mybatisTest.com.test.Test1.main(Test1.java:18)
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 33; columnNumber: 17; 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:259)
at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:125)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.<init>(XMLConfigBuilder.java:78)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:77)
... 2 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 33; columnNumber: 17; 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1994)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:879)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:257)
... 5 more
大概是标签的顺序给写反了,引入的外部文件应该写在最前面,改正之把蓝色的那一行整个的往上挪,终于挪到了正确的位置,总算该成功了吧,,,我擦,太乐观了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" . SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http: //www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class : ${jdbc.driverClassName} ### The error may exist in mybatisTest/com/mapping/UserMapper.xml ### The error may involve mybatisTest.com.domain.UserMapper.getuser ### The error occurred while executing a query ### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class : ${jdbc.driverClassName} at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java: 30 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 150 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 141 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java: 77 ) at mybatisTest.com.test.Test1.main(Test1.java: 29 ) Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class : ${jdbc.driverClassName} at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.initializeDriver(UnpooledDataSource.java: 221 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java: 200 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java: 196 ) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java: 93 ) at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java: 385 ) at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java: 89 ) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java: 138 ) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java: 60 ) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java: 337 ) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java: 84 ) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java: 62 ) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java: 325 ) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java: 156 ) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java: 109 ) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java: 83 ) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: 148 ) ... 3 more |
什么意思找不到${jdbc.driverClassName}我也没找到,还记得jdbc.properties里面我的写法么driver=driver
真正的写法当然是
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.password=root
好吧到此才算完完整整的修改完毕终于看到了正确的结果,又回过头来把环境变量干掉,完美的运行了,把权宜之时放进jdk-jre-lib-ext 里面的mysql jar包删除掉,保持jdk的伟大的纯洁性,还是可以运行的
这一天真的是心好累啊,心好塞啊,简直就是浴火奋战呢啊,满脑子满肚子都是怒气啊,不过当问题解决之后还是一种如沐春风的感觉了。认真谨慎细心,是一个程序员必备的素质,还是不要自不自弃,多少次都想放弃了,看看视频幸好自己又逼着自己硬着头皮又做了几遍才又一遍正确了,回溯的时候就找到问题所在了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人