mybatis查询时没有出来数据,报错

mybatis查询时没有出来数据,报错

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--  namespace  命名空间
      通常情况,命名空间默的值,就是当前操作实体类的全名称
-->
<mapper namespace="com.imooc.bean.Users">
    <select id="usersList" resultType="com.imooc.bean.Users">
        select * from user;
    </select>
</mapper>






























<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--
    environments 主要用于进行数据源的配置
    可以配置多个数据源~ 通过default属性来指定当前项目运行过程中使用的是哪个数据源
    -->
    <environments default="development">
        <!--
        environment 用于配置一个具体的独立的数据源
        id属性用于给当前数据源定义一个名称,方便我们的项目指定
        -->
        <environment id="development">
            <!--
            transactionManager用于配置事务管理,默认情况下使用的是JDBC事务管理
            -->
            <transactionManager type="JDBC"/>
            <!--使用数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/jdbctest"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射配置文件的路径-->
    <mappers>
        <!-- mapper主要配置引入某一个具体的映射文件,resource进行路径方式的引入 -->
        <!--<mapper resource="mapper/usersMapper.xml"/>-->
    	<mapper resource="mapper/usersMapper.xml"/>
    </mappers>
</configuration>



















package com.imooc.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.imooc.bean.Users;

public class TestDemo1 {

	
	public void testDemo() throws IOException {
		String resource="mybatis.xml";
        InputStream is= Resources.getResourceAsStream(resource);
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //打开和数据库之间的对话
        SqlSession session=factory.openSession();
        List<Users> ulist=session.selectList("usersList");
        for (Users user:ulist
             ) {
            System.out.println(user);
        }
        session.close();
		
	}
	public static void main(String[] args) {
		TestDemo1 t=new TestDemo1();
		try {
			t.testDemo();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Thu Sep 26 11:47:09 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: java.sql.SQLException: Unknown system variable 'query_cache_size'

### The error may exist in mapper/usersMapper.xml

### The error may involve com.imooc.bean.Users.usersList

### The error occurred while executing a query

### Cause: java.sql.SQLException: Unknown system variable 'query_cache_size'

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.selectList(DefaultSqlSession.java:136)

at com.imooc.test.TestDemo1.testDemo(TestDemo1.java:24)

at com.imooc.test.TestDemo1.main(TestDemo1.java:35)

Caused by: java.sql.SQLException: Unknown system variable 'query_cache_size'

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2497)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2455)

at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1369)

at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3777)

at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3240)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2249)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2035)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

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:336)

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:324)

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)

... 4 more

http://img1.sycdn.imooc.com//climg/5d8c362a09f508c504450542.jpg



正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,这是mysql8的时区问题,同学在url后面指定一下时区即可:

jdbc:mysql://localhost:3306/jdbctest?useSSL=false&amp;serverTimezone=UTC

如果我的回答解决你的疑惑,请采纳,祝学习愉快~

  • 慕用1236393 提问者 #1
    谢谢老师,要不然得愁死
    2019-09-26 16:40:06
好帮手慕柯南 2019-09-26 14:37:05

同学你好!

根据报错信息,应该是同学的版本不匹配导致的问题,请问同学安装的mysql版本是8.0以上的吗?如果是:

  1. 建议同学将mysql-connect更换为8.0版本

  2. 将驱动改为:com.mysql.cj.jdbc.Driver

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕用1236393 #1
    Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. ### The error may exist in mapper/usersMapper.xml ### The error may involve com.imooc.bean.Users.usersList ### The error occurred while executing a query ### Cause: java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. 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.selectList(DefaultSqlSession.java:136) at com.imooc.test.TestDemo1.testDemo(TestDemo1.java:24) at com.imooc.test.TestDemo1.main(TestDemo1.java:35)
    2019-09-26 15:11:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师