上一小节讲述了将mybatis创建一个 帮助类,简化使用
本小节描述如何将配置文件和接口绑定
将jar包复制到工程中,并引入
创建表
CREATE TABLE `book` (
`bookId` int(11) NOT NULL auto_increment,
`bookName` varchar(20) default NULL,
`bookAuthor` varchar(200) default NULL,
`bookPrice` decimal(9,2) default NULL,
`bookInfo` longtext,
PRIMARY KEY (`bookId`)
)
创建实体bean
package com.han.mybatis.vo;
import java.io.Serializable;
public class Book implements Serializable{
private int bookId;
private String bookName;
private String bookAuthor;
private double bookPrice;
private String bookInfo;
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getBookAuthor() {
return bookAuthor;
}
public void setBookAuthor(String bookAuthor) {
this.bookAuthor = bookAuthor;
}
public double getBookPrice() {
return bookPrice;
}
public void setBookPrice(double bookPrice) {
this.bookPrice = bookPrice;
}
public String getBookInfo() {
return bookInfo;
}
public void setBookInfo(String bookInfo) {
this.bookInfo = bookInfo;
}
@Override
public String toString() {
return "Book [bookId=" + bookId + ", bookName=" + bookName + ", bookAuthor=" + bookAuthor + ", bookPrice="
+ bookPrice + ", bookInfo=" + bookInfo + "]\r\n";
}
}
在src下创建配置文件mybatis-config.xml
<?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>
<typeAliases>
<typeAlias type="com.han.mybatis.vo.Book" alias="Book"/>
</typeAliases>
<!-- 配置环境(支持多个环境) -->
<environments default="development">
<!-- 其中一个环境 -->
<environment id="development">
<!-- 事务管理(JDBC事务) -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据源 -->
<dataSource type="UNPOOLED">
<property name="driver" value="com.MySQL.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="********"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/han/mybatis/vo/BookMapper.xml"/>
</mappers>
</configuration>
编写mybatis帮助类
package com.han.mybatis.util;
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 MyBatisUtil {
public static SqlSessionFactory buildSqlSessionFactory() {
String resource = "mybatis-config.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
return sqlSessionFactory;
}
public static SqlSession openSqlSession() {
return buildSqlSessionFactory().openSession();
}
public static SqlSession openSqlSession(boolean autoCommit) {
return buildSqlSessionFactory().openSession(autoCommit);
}
}
编写接口
package com.han.mybatis.dao;
import java.util.List;
import com.han.mybatis.vo.Book;
public interface IBookDao {
List<Book> loadAll();
int save(Book b);
int delete(int id);
Book loadById(int id);
int update(Book b);
}
编写映射文件
注意namespace,必须是接口的名字
<?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="com.han.mybatis.dao.IBookDao">
<select id="loadAll" resultType="Book">
select * from Book
</select>
<insert id="save" parameterType="Book">
insert into Book(bookName,bookAuthor,BookPrice,bookInfo)
values(#{bookName},#{bookAuthor},#{bookPrice},#{bookInfo})
</insert>
<delete id="delete" parameterType="int">
delete from Book where bookId=#{id}
</delete>
<update id="update" parameterType="Book">
update book set bookName=#{bookName},bookAuthor=#{bookAuthor},
bookPrice=#{bookPrice},bookInfo=#{bookInfo} where bookId=#{bookId}
</update>
<select id="loadById" resultType="Book" parameterType="int">
select * from book where bookId=#{id}
</select>
</mapper>
编写代码测试:
SqlSession sqlSession = MyBatisUtil.openSqlSession();
IBookDao iBookDao = sqlSession.getMapper(IBookDao.class);
List<Book> Books = iBookDao.loadAll();
for (Book Book : Books) {
System.out.println(Book);
}