先说下用到的几个文件
数据库用的表:
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 其实东西很少。。。。 有空的大神帮忙看下。。 谢谢。