mybatis
原来是apache的开源项目,ibatis,2010转移到谷歌,3.0后改名mybatis
mybatis是一款优秀的数据持久层(dao)框架
servlet(web) 接收请求,调用其他java代码处理
service 业务逻辑层
dao 数据访问/持久
mybatis是对jdbc进行轻量级的封装,提供一些自己定义的类和接口来实现功能,提供专门的xml文件进行配置,以及可以自动对查询结果进行封装,是一个ORM(Java对象与数据库表映射)实现的数据持久层框架。
mybatis搭建
1.创建maven项目
添加mybatis,mysql 依赖的jar
2.创建数据库表,创建类
创建一张管理员表
public class Admin {
private int id;
private String account;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3.创建mybatis全局配置文件
在 resources目录下创建 mybatis.xml文件
配置数据库连接信息,配置sql映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
核心配置文件
配置连接数据库相关的配置
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 配置数据源,type="POOLED 是否使用数据库连接池 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="" />
<property name="username" value="root" />
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 配置sql 映射文件-->
<mappers>
<mapper resource="mappers/AdminMapper.xml"></mapper>
</mappers>
</configuration>
4.创建sql映射文件
在resources下建立 mappers目录 再创建 AdminMapper
定义一个与接口中 方法名相同的查询
<?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">
<!--
sql映射文件,把所有的sql语句分离到xml文件中
-->
<mapper namespace="com.ffyc.mabatispro.dao.AdminDao">
<select id="findAdminById" resultType="com.ffyc.mabatispro.model.Admin" parameterType="int">
select * from admin where id=#{id}
</select>
</mapper>
5.创建访问接口
定义一个方法
import com.ffyc.mabatispro.model.Admin;
public interface AdminDao {
public Admin findAdminById(int id);
}
6.测试mybatis
import java.io.IOException;
import java.io.Reader;
public class TestAdmin {
public static void main(String[] args) throws IOException {
/*
读取mybatis 核心的配置文件
*/
Reader reader=Resources.getResourceAsReader("mybatis.xml");
// 创建 SqlSessionFacorty
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
// 创建 SqlSession session会话,一次与数据库交互,类似于之前的Connection
SqlSession sqlSession=sessionFactory.openSession();
//创建访问接口的代理对象
AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
//使用代理对象访问对应方法,本质是调用的是接口对应的sql映射文件中那sql
Admin admin=adminDao.findAdminById(1);
System.out.println(admin);
//关闭于数据库连接会话对象
sqlSession.close();
}
}
Admin{id=1, account='admin', password='111'}