哪里错了空指针异常而且logback怎么没运行

来源:3-3 自由编程

weixin_慕瓜9083905

2020-02-06 16:05:29

@Test
public void selectOneToMany()throws Exception{
   SqlSession session = null;
   Map param = new HashMap();
   param.put("classno","Class001");
   List<Classes> list = session.selectList("classes.selectByClassNo",param);
   List<Student> stuList = session.selectList("student.slectOneToMany");
   for(Student s:stuList){
       System.out.println(s);
   }
   try {
       session = MybatisUtils.openSession();
   }catch (Exception e){
       throw e;
   }finally {
       MybatisUtils.closeSession(session);
   }
}

package com.imooc.mybatis.entity;

import java.util.ArrayList;
import java.util.List;

public class Student {
   private Integer id;
   private String stuno;
   private String stuName;
   private String sex;
   private String classno;
   private List<Classes> classes;

   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }

   public String getStuno() {
       return stuno;
   }

   public void setStuno(String stuno) {
       this.stuno = stuno;
   }

   public String getStuName() {
       return stuName;
   }

   public void setStuName(String stuName) {
       this.stuName = stuName;
   }

   public String getSex() {
       return sex;
   }

   public void setSex(String sex) {
       this.sex = sex;
   }

   public String getClassno() {
       return classno;
   }

   public void setClassno(String classno) {
       this.classno = classno;
   }

   public List<Classes> getClasses() {
       return classes;
   }

   public void setClasses(List<Classes> classes) {
       this.classes = classes;
   }

   @Override
   public String toString() {
       return "Student{" +
               "id=" + id +
               ", stuno='" + stuno + '\'' +
               ", stuName='" + stuName + '\'' +
               ", sex='" + sex + '\'' +
               ", classno='" + classno + '\'' +
               ", classes=" + classes +
               '}';
   }
}


package com.imooc.mybatis.entity;

public class Classes {
   private Integer id;
   private String classno;
   private String name;
   private String major;

   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }

   public String getClassno() {
       return classno;
   }

   public void setClassno(String classno) {
       this.classno = classno;
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getMajor() {
       return major;
   }

   public void setMajor(String major) {
       this.major = major;
   }
}


<?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">
<mapper namespace="classes">
   <select id="selectByClassNo" parameterType="java.util.Map" resultType="com.imooc.mybatis.entity.Classes">
       select * from student where classno = #{classno}
   </select>
</mapper>



<?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">

<mapper namespace="student">
   <resultMap id="rmOneToMany" type="com.imooc.mybatis.entity.Student">
       <result column="classno" property="classno"></result>
       <collection property="classes" select="com.imooc.mybatis.entity.Classes" column="classno"/>

   </resultMap>
   <select id="slectOneToMany" resultMap="rmOneToMany">
       select * from student where classno=#{classno}
   </select>
</mapper>


<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
   <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
       <encoder>
           <pattern>[%thread] %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
       </encoder>
   </appender>
   <root levle="debug">
       <appender-ref ref="console"/>
       <!--
           日志输出级别(优先级高到低):
           error:错误 - 系统的故障日志
           warn:警告 - 存在风险或使用不当的日志
           info: 一般性信息
           debug: 程序内部用于调试信息
           trace:程序运行的跟踪信息
           level表示最低显示哪一项,生产时写info,开发时写debug
       -->
   </root>
</configuration>




写回答

2回答

好帮手慕酷酷

2020-02-06

同学你好,logback没有运行的原因是,同学没有调用openSession()方法,创建一个新的sqlSession 返回sqlSession对象。

具体如下:

http://img.mukewang.com/climg/5e3bedb10936265206090146.jpg

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

0

好帮手慕酷酷

2020-02-06

同学你好,同学整体编写的有点问题,这里应该是Classes实体类中应该包含student集合,随之xml文件也需重新编写, 这里同学可以参考一下如下同学的代码修改一下:https://class.imooc.com/course/qadetail/148732 

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

0
heixin_慕瓜9083905
h logback 怎么没运行呢
h020-02-06
共1条回复

0 学习 · 8016 问题

查看课程