# 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工具类
标签:SqlSessionFactory,UserMapper,SqlSession,sqlSession,SQL,Mybatis
From: https://www.cnblogs.com/Rover20230226/p/17368315.html