ORM
对象关系映射 程序设计技术 实现面向对象编程语言中数据类型转换
即用对象的方式操作数据库
衍生:
1.对象与数据库中的表一一映射
2.对象中的属性与表字段映射
3.其中的映射应该由程序自动完成 无需人为干预
常规JDBC的弊端
1.无论如何执行都要获取链接 链接池 c3p0 druid HK链接池
2.操作sql语句时步骤繁琐
3.资源必须手动关闭
常规JDBC的优点
操作数据库最快的方式就是JDBC 协议时TCP协议
MyBatis→ 前身为iBatis
是优秀的持久层框架 ,基于ORM的设计思想实现以对象的方式操作数据库
持久化:将内存数据保存到磁盘中
持久层:程序通过Dao/Mapper层 与数据库进行交互的层级代码(Controller Service Dao/Mapper层)
弊端:Mybatis的ORM不完全,只完成了结果集映射,但是sql需要自己手写,也称为半自动化的ORM映射框架
案例步骤
1.导入jar包
<!--mybatis依赖包-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--jdbc依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.编辑pojo
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class DemoUser implements Serializable {
private Integer id;
private String name;
private Integer age;
private String sex;
}
3.编辑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>
<!--环境配置标签-->
<environments default="development">
<!--编辑开发环境 id为环境的唯一标识-->
<environment id="development">
<!--事务管理器 利用JDBC控制事务-->
<transactionManager type="JDBC"/>
<!--mybatis默认采用数据库链接池的方式整合数据源-->
<dataSource type="POOLED">
<!--高版本的数据库驱动需要添加cj-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--Mybatis加载Mapper映射文件
1.mapper映射文件是有顺序的 位置不要随便切换
2.通过resource 加载指定的xml文件-->
<mappers>
<mapper resource="mybatis/mappers/demoUserMapper.xml"/>
</mappers>
</configuration>
3.构建持久层接口
/*说明,
1.根据面向接口开发的思想需要定义一个Mapper接口
2.在接口中写接口方法,谁用谁去实现
3.Mybatis中的实现类以xml文件的形式存在
*
* */
public interface DemoUserMapper {
//1.查询所有的表数据
public List<DemoUser> findAll();
}
4.构建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">
<!--namespace是mybaits映射文件的唯一标识,与接口对应
namespace:指定需要绑定的接口名称 不可重复-->
<mapper namespace="com.jt.mapper.DemoUserMapper">
<!--id 与接口方法绑定
resultType 返回对象的包路径
规则:sql语句不要添加多余的分号
-->
<select id="findAll" resultType="com.jt.pojo.DemoUser">
select * from demo_user
</select>
</mapper>
5.Mybatis关联映射文件 在
<!--Mybatis加载Mapper映射文件
1.mapper映射文件是有顺序的 位置不要随便切换
2.通过resource 加载指定的xml文件-->
<mappers>
<mapper resource="mybatis/mappers/demoUserMapper.xml"/>
</mappers>
6.Mybatis实现数据查询
6.1创建SqlSessionFactory
位置:test
public class TestMybatis {
public void demo1() throws IOException {
/*创建SqlSessionFactory*/
String resource = "mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
}
6.2获取 SqlSession
//获取 SqlSession 类比数据库链接
SqlSession sqlSession = sqlSessionFactory.openSession();
6.3获取Mapper接口
//获取Mapper接口
DemoUserMapper mapper = sqlSession.getMapper(DemoUserMapper.class);
6.4获取数据
//获取数据
List<DemoUser> all = mapper.findAll();
6.5关闭资源
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_55740233/article/details/120433713
内容来源于网络,如有侵权,请联系作者删除!