Mybatis的一个小DEMO,报空指针异常,新手求教。

轻叹无音丶 2015-01-02 10:28:30
先说下用到的几个文件

数据库用的表:

jeff.zhan.book\src\main\java\bean\Books.java :(就是一个javabean,设了3个属性)
package bean;

public class Books {
private int id;
private String bookName;
private String date;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}


jeff.zhan.book\src\main\java\config\Configuration.xml:(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>
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />

<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/jeff.zhan" />
<property name="username" value="root" />
<property name="password" value="zhanqian" />
</dataSource>

</environment>
</environments>
<mappers>
<mapper resource="main/java/sqlConfig/book.xml"></mapper>
</mappers>
</configuration>


jeff.zhan.book\src\main\java\sqlConfig\book.xml:(专门写SQL语句的配置文件)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jeff1">

<resultMap type="java/bean/Books" id="jeff2">
<id column="id"jdbcType="INTEGER"property="id"></id>
<result column="bookName"jdbcType="VARCHAR"property="bookName"></result>
<result column="date"jdbcType="VARCHAR"property="date"></result>
</resultMap>
<select id="allbooks" resultMap="jeff2">
SELECT id,bookName,date
FROM testtable
</select>

</mapper>


jeff.zhan.book\src\main\java\mybatis\DBSession.java(这个应该没问题)
package mybatis;

import java.io.IOException;
import java.io.Reader;

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

public class DBSession {
public SqlSession getSqlSession() throws IOException{
Reader reader = Resources.getResourceAsReader("config/Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}



jeff.zhan.book\src\main\java\dao\Daoclass.java (这里的主函数来验证我DAO里调用books.xml文件里的sql语句,返回一个List<Books>的数据集合)
package dao;

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

import org.apache.ibatis.session.SqlSession;

import mybatis.DBSession;
import bean.Books;


public class Daoclass {
//返回数据库所有元素
public List<Books> queryBooksList(){
DBSession dbAccess = new DBSession();
SqlSession sqlSession = null;
List<Books> books = new ArrayList<Books>();
try {
sqlSession = dbAccess.getSqlSession();
books = sqlSession.selectList("jeff1.allbooks");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sqlSession.close();
}
return books;
}

public static void main(String[] args) {
Daoclass dao = new Daoclass();
if(dao.queryBooksList() != null){
System.out.println(dao.queryBooksList());
}else{
System.out.print("error");
}

}
}


报的错

刚起步学,JDBC这些都没接触过,没经验,所以学mybatis时错了的有点不知所措。
这个DEMO 其实东西很少。。。。 有空的大神帮忙看下。。 谢谢。
...全文
1952 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
楠木沁 2019-01-30
  • 打赏
  • 举报
回复
同学你好,我跟你一样是 SqlSession sqlSession=sqlSessionFactory.openSession(); 这句出现问题,看到消息能不能回复一下解决方案呢
  • 打赏
  • 举报
回复
xml配置文件,resultMap type="......"错了
  • 打赏
  • 举报
回复
debug模式一步一步跟着走,看哪一步没有获得值
异常异长 2015-01-04
  • 打赏
  • 举报
回复
xml错了 可参考楼上。 如果改后 还有错 debug dao类就行了。
colin0242 2015-01-04
  • 打赏
  • 举报
回复
同2楼 books.xml <resultMap type="java.bean.Books" 也可以不用定义resultMap,可以 <select id="allbooks" resultType="java.bean.Books"></select > 或者试试 <select id="allbooks" resultType="hashmap"></select > public class Daoclass { //返回数据库所有元素 public List<HashMap<String,Object>> queryBooksList(){ ....

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧