| # 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工具类 |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通