Mybatis

Rover20230226 / 2023-05-03 / 原文

# Mybatis
0. 概述
	1). 框架: 框架中一般都是所有程序员都需要开发的重复代码,框架把这些提供好之后,程序员就可以把精力专注在核心业务上。
	2). Mybatis: MyBatis是一款优秀的持久层框架,使用Mybatis可以轻松的实现Java程序向数据库发送SQL语句,而且对于SQL查询回来的结果进行方便的封装。
	3). Java与MySQL之间的映射关系
		类   --- 数据表
		属性 --- 字段
		对象 --- 记录
1. API
	1). Resources:将配置文件读取成一个输入流
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
	2). SqlSessionFactoryBuilder:用于创建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	3). SqlSessionFactory:用于获取SqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
	4). SqlSession:用于获取发送sql的代理对象,注意sqlSession要求用完立即销毁
		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
2. #和$
	1). #表示占位符,使用它可以防止SQL注入问题,同类型的SQL只编译一次
	2). $表示字符串拼接,使用它存在SQL注入问题,每次SQL都会重新编译
3. Mybatis工具类
	1). 读取配置文件,读成一个输入流
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
	2). 创建SqlSessionFactory对象
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	3). 获取SqlSession对象
		SqlSession sqlSession = sqlSessionFactory.openSession();
	4). 获取UserMapper对象,调用方法
		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    	userMapper.delete(1);
    5). 提交事务
    	sqlSession.commit();
    6). 释放资源
    	sqlSession.close();
4. Mybatis使用两步骤  com.itheima
	1). src/main
		1. /java  domain中 User 正式Java源代码(实体类)
		2. /java  mapper中 UserMapper接口(MySQL语句)
		3. /resources  SqlMapConfig.xml(声明要连接的数据信息)
	2). src/test
		/java  test中  UserMapperTest
			1. 准备一个User对象  创建用户对象
			2. 实现Mybatis工具类