在上一篇文章中简单的总结了一些Mybatis的相关知识点。
今天就通过一个入门小程序实际来演示一下Mybatis是如何使用的。
用一个小例子来完成一个数据的查询流程以及了解Mybatis核心api的操作流程。
入门程序搭建
我的开发环境为:Linux+jdk1.8+IntelliJIdea+Mysql
①首先使用IDEA新建一个Maven项目。
pom.xml文件中引入mybatis、mysql等相关依赖
<dependencies>
<!--Mysql JDBC驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!--Mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!--junit单元测试依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
②resources目录下新建mybatis-config.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"/><!--事务管理,默认的JDBC方式-->
<!--数据源,使用数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo"/>
<property name="username" value="root"/>
<property name="password" value="{$password}"/>
</dataSource>
</environment>
</environments>
<!--映射配置文件的路径-->
<mappers>
<mapper resource="mapper/usersMapper.xml"/>
</mappers>
</configuration>
③接下来就可以建数据库表了,我们简单的模拟一个用户信息的表。
create database mybatis_demo;
use mybatis_demo;
create table users(
id int auto_increment primary key,
username varchar(50),
password varchar(50),
nickname varchar(20)
);
insert into users values(1,'admin','123','管理员');
insert into users values(2,'josiah','4567','用户1');
insert into users values(3,'lovebugs','678','用户2');
④新建Java实体类User,与数据库字段一致
public class User {
private int id;
private String username;
private String password;
private String nickname;
以及getter(),setter(),toString()方法。
⑤resources目录下新建mapper文件夹,下面新建userMapper.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">
<!--namespace为命名空间
通常情况下,命名空间的值就是当前操作的实体类的全名称
-->
<mapper namespace="cn.lovebugs.entity.User">
<select id="usersList" resultType="cn.lovebugs.entity.User">
select * from users
</select>
</mapper>
⑥接下来就可以进行测试查询了,新建Test类,通过junit进行测试。
import cn.lovebugs.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Test {
@org.junit.Test
public void test() throws IOException {
//初始化mybatis配置环境
String resource = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//打开和数据库之间的会话
SqlSession session = factory.openSession();
//查询
List<User> usersList = session.selectList("usersList");//usersList为userMapper.xml里定义的id名
for (User user : usersList){
System.out.println(user);
}
//关闭会话
session.close();
}
}
结果显示查询成功:
Mybatis核心API操作过程分解
上面已经执行成功了一个简单的查询过程,接下来解释一下上述方法中的执行过程。
首先我们第一步定义好了Mybatis的配置信息,即mybatis-config.xml文件,以及***Mapper.xml映射的配置文件,在程序运行过程中要对配置文件进行读取,接下来构建了一个和数据库之间的会话(使用SqlSessionFactoryBuilder),SqlSessionFactoryBuilder结合配置文件会构建出一个SqlSessionFactory的工厂类(整个应用过程中构建这一次就可以了)。
然后通过SqlSessionFactory来打开一个和数据库之间的会话SqlSession,通过会话的执行器Executer来执行sql语句,输出结果集。
微信公众号【编程资源网】
本公众号致力于免费分享全网最优秀的视频资源,学习资料,面试经验等,前端,PHP,JAVA,算法,Python,大数据等等,你想要的这都有,还会分享优质博文,提高你的认知与思维
编程资源网-QQ交流群:625494093
要进微信交流群的话加微信:lovebugs88
微信搜索公众号:编程资源网 或者扫描下方二维码直接关注,
原创文章,转载请注明出处
网友评论