关于mybatis框架遇到的问题!(语言-java)

SqlMapConfig


configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>


    <properties resource="jdbc.properties">properties>


    <environments default="developemnt">
      
        <environment id="developemnt">
      
            <transactionManager type="JDBC">transactionManager>
   
        
                <property name="driver" value="${driverClassName}">property>
                <property name="url" value="${url}">property>
                <property name="username" value="${username}">property>
                <property name="password" value="${password}">property>
            dataSource>
        environment>
    environments>

    <mappers>
        <mapper resource="StudentMapper.xml">mapper>
    mappers>
configuration>

Mapper


mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="rar">

    <select id="getAll" resultType="Student">
        select sno,name from students
    select>
mapper>
jdbc.properties文件

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/friend?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=123456

测试类
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.List;

public class MyTest {
    @Test
    public void testA() throws IOException {
        //使用文件流读取核心配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建SqlSessionFactory工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

        //取出sqlSession
        SqlSession sqlSession = factory.openSession();
        //取出查询操作
        List list = sqlSession.selectList("rar.getAll");
        list.forEach(student -> System.out.println(student));
        //关闭sqlSession
        sqlSession.close();
    }
}

img

结果

img

原因是啥吗

一点毛病没有,你把Student类的toString方法重写一下;直接用idea的右键一键生成就可以了。

你的代码没有问题,运行也正常,出现这种情况的原因是System.out.println(student)这行代码,打印的是student对象的引用地址,你可以打印它的属性,例如System.out.println(student.getName)之类的,如果想要打印完整的对象信息,你可以在student类里面重写一下toString方法,这样打印的内容就是你的toString方法里面定义的值了

重写一下toString就可以了

看下这篇博客,也许你就懂了,链接:深入理解JAVA中MyBatis框架(1)