1 Mybatis是java中的ORM开发框架
1.1 ORM框架是一种以面向对象的方式操作数据库的框架
1.2 Mybatis将sql的查询结果自动映射成java对象
1.3 Mybatis将映射过程简化到一个简单的xml配置文件中
2 使用intellij idea创建基于maven的项目com.demo.firstMybatis
3 Pom.xml添加依赖
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
4 Mysql数据库创建表question并插入数据
create TABLE question(
id int,
createdTime datetime,
description text,
title varchar(250)
)
insert into question(id, createdtime, description, title)
VALUES(1, '2017-12-12', '我是谁', '第一个问题')
5 创建数据库对象层(model层),/src/main/java/demo/firstMybatis/model下创建Question对象
public class Question implements Serializable {
private static final long serialVersionUID = -4293062974397675105L;
private Long id;
private String title;
private String description;
private Date createdTime;
private List<Tag> tags;
private List<Answer> answers;
public String getTitle(){
return this.title;
}
public String getDescription(){
return this.description;
}
}
6 创建数据访问层(接口方式,dao层),/src/main/java/demo/firstMybatis/dao/下创建IQuestionDao接口类
//question对象的数据操作层接口类
public interface IQuestionDao {
//findOne,接口内的具体方法
Question findOne(@Param("id") Long id);
}
7 实现数据访问层(通过xml文件映射方式实现),/src/main/resources/mapper/下创建IQuestionDao.xml文件(7/8的文件名必须要一模一样)
<!--
demo.firstMybatis.dao.IQuestionDao接口的实现
通过xml映射方式实现
-->
<mapper namespace="demo.firstMybatis.dao.IQuestionDao">
<cache />
<!--
select:查询映射
id:方法名
resultType:返回的数据类型
#{id}:接口方法中定义的参数
-->
<select id="findOne" resultType="demo.firstMybatis.model.Question">
SELECT * FROM question WHERE question.id = #{id}
</select>
</mapper>
8 配置mybatis,/src/main/java/resources/下创建mybatis.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>
<properties>
<!--配置mysql数据库的连接字符串-->
<property name="url" value="jdbc:mysql://192.168.10.164:3306/springdb?user=root&password=123bnsy$" />
</properties>
<!--配置mybatis环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${url}"/>
</dataSource>
</environment>
</environments>
<!--配置mapper映射,程序会在此配置中查找映射的xml-->
<mappers>
<mapper resource="mapper/IQuestionDao.xml"/>
</mappers>
</configuration>
9 编写测试类
public class Application {
public static void main(String[] args) {
// 准备工作
InputStream inputStream = null;
try {
// CONFIG_LOCATION的值即为MyBatis配置文件的路径
inputStream = Resources.getResourceAsStream("mybatis.xml");
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 获取mapper
IQuestionDao questionMapper = sqlSession.getMapper(IQuestionDao.class);
// 调用mapper方法
Question question = questionMapper.findOne((long) 1);
System.out.println(question.getTitle()+"----"+question.getDescription());
} finally {
// 最后一定关闭SqlSession
sqlSession.close();
}
}
}
10 右键main,执行,输出结果
11 至此,第一个mybatis程序完成,可以发现
11.1 创建maven项目
11.2 配置pom.xml依赖
11.3 创建表对应的model类
11.4 创建数据访问接口dao类
11.5 创建dao类的实现xml
11.6 创建mybatis的配置文件,并配置mybatis的环境和要映射的xml文件
11.7 创建测试类,测试类进行以下操作
读取mybatis.xml配置文件创建sqlsession工厂
通过sqlsession工厂创建sqlsession对象
Sqlsession对象通过dao类名查找dao接口的映射实现
通过dao接口来调用数据库操作方法