发表于: 2017-11-06 20:43:31

1 680


今天完成的任务:写了mybatis,在同学帮助下解决了空指针的问题。

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

<properties resource="jdbc.properties"/>
<typeAliases>
<package name="entity"/>
<!--<typeAlias type="entity.Student" alias="Student"></typeAlias>-->
   </typeAliases>
<environments default="mybatis=demo">
<environment id="mybatis=demo">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--<mapper resource="StudentMapper.xml"></mapper>-->
       <package name="dao"/>
</mappers>
</configuration>
package dao;

import entity.Student;

import java.util.List;

public interface StudentMapper {
int insertStudent(Student student);
Student selectOneById(int id);
List<Student> selectAllStudent();

}
package entity;

public class Student {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) { this.name = name; }

public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}

}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.StudentMapper">
<resultMap id="studentMapper" type="entity.Student">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>

<insert id="insertStudent" parameterType="entity.Student">
INSERT INTO student (id,name,age) VALUES (#{id},#{name},#{age})
</insert>

</mapper>
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=6546

运行下面的程序出现了空指针

import dao.StudentMapper;
import entity.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;


public class Main {
public static void main(String[] args) throws Exception {
InputStream in = Main.class.getResourceAsStream("mybatis-cfg.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();

StudentMapper mapper = session.getMapper(StudentMapper.class);
Student student = new Student();
student.setName("like");
student.setId(42);
student.setAge(25);
mapper.insertStudent(student);
session.commit();
session.close();
}
}

我的文件结构是这样的:

解决方法用maven工程,把我创建的resource里的文件都挪到maven自带的resources里,然后稍作改动,就解决了。

一会我去看看log4j。尽量点亮技能树。

遇到的问题:解决了mybatis里空指针问题。

明天的计划:完成任务1.25.并点亮log4j技能。


返回列表 返回列表
评论

    分享到