mybatis初试
1.创建一个maven工程
引入mybatis、junit、log4j依赖
2.配置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>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<!-- 可以配置多个environment -->
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/fiction" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>
3.创建一个实体类和数据库的表
public class BookType implements Serializable {
private Integer bookTypeId;
private String bookTypeName;
...//手动实现无参 有参构造 get\set方法 重写hashcode和equals toString
}
CREATE TABLE `booktype` (
`bookType_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '书籍类型id(主键)',
`bookType_name` varchar(20) COLLATE utf8_unicode_ci NOT NULL COMMENT '书籍的类型名称',
PRIMARY KEY (`bookType_id`) USING BTREE
)
4.创建mapper.java接口
public interface BookTypeMapper {
/**
* way:通过书籍类型id查询书籍类型信息
* @param id 书籍类型id
* @return 返回书籍类型对象
*/
public BookType selectById(Integer id);
}
5.配置mapper.xml文件
<?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="abc">
<select id="selectById" parameterType="int" resultType="com.fs.mapper.BookTypeMapper">
SELECT BOOKTYPE_ID,BOOKTYPE_NAME FROM BOOKTYPE WHERE BOOKTYPE_ID=#{id}
</select>
</mapper>
6.整体结构图
7.创建测试类
//在创建BookTypeMapperTest之前,需要在mybatis-config.xml配置文件中添加以下代码
//<mappers>
// <mapper resource="BookTypeMapper.xml"></mapper>
//</mappers>
//创建BookTypeMapperTest测试类
public class BookTypeMapperTest {
@Test
public void selectById() {
//1.读取mybatis的配置文件
InputStream in = BookTypeMapperTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
//2.通过SqlSessionFactoryBuilder构建者得到SqlSessionFactory工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//3.通过SqlSessionFactory工厂得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//4.运用SqlSession执行方法得到结果
BookType bookType = sqlSession.selectOne("abc.selectById",1);
System.out.println(bookType);
//5.关闭SqlSession
sqlSession.close();
}
}
8.代码的执行顺序