初识Mybatis
Mybatis是什么
- Mybatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身。
- 我们原来使用JDBC操作数据库,需要手动的写代码去注册驱动、获取connection、获取statement等等,现在Mybaits帮助我们把这些事情做了,我们只需要关注我们的业务sql即可,这样可以提高我们的开发效率。
- MyBatis属于半自动的ORM框架
Mybatis架构
- MybatisConfig.xml
- Mapper.xml
- sqlSessionFacory
- sqlSsession
- Executor
- MappedStatement
- 输入映射
- 输入映射我们可以理解为执行sql语句所需的参数
- 输出映射
Mybatis对比JDBC的优点
- MyBatis会帮我们把加载驱动、获取连接等过程进行封装,我们不再需要关注这些,只需要关注业务逻辑本身的sql即可,提高开发效率
- MyBatis的sql语句在xml文件里面编写,改变sql语句不再需要重新编译,降低耦合性
创建第一个Mybatis程序
打开Mybatis官网
https://mybatis.org/mybatis-3/zh/index.html
导入依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
写出MybatisConfig文件
<?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">
//事务管理,默认使用jdbc
<transactionManager type="JDBC"/>
//使用数据库连接池
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
//配置Mapper.xml文件映射地址
<mapper resource="BlogMapper.xml"/>
</mappers>
</configuration>
写出配置Mapper文件中的内容
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="TestMapper">
<select id="selectAll" resultType="map">
select * from cinema
</select>
</mapper>
创建与数据库相对应的实体类对象
package com.yc.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class cinema {
private Integer id;
private String name;
private String address;
private String gps;
private String img;
}
从 XML 中构建 sqlSessionFactory
@Test
public void test01(){
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsstream(resource);
sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder().build(inputStream);
}
从 sqlSessionFactory获取会话对象
sqlSession sqlSession = sqlSessionFactory.openSession();
执行方法
@Test
public void test01() throws IOException {
String resource = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsstream(resource);
sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder().build(inputStream);
sqlSession sqlSession = sqlSessionFactory.openSession();
String sql="TestMapper.selectAll";
List<Object> objects = sqlSession.selectList(sql);
for (Object object : objects) {
System.out.println(object);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。