MyBatis的简介
原始jdbc操作的分析
原始jdbc开发存在的问题如下:
- 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能。
- sql 语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
- 查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置。
应对上述问题给出的解决方案:
- 使用数据库连接池初始化连接资源。
- 将sql语句抽取到xml配置文件中。
- 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射。
MyBatis的快速入门
MyBatis开发步骤
MyBatis开发步骤:
① 添加MyBatis的坐标
② 创建user数据表
③ 编写User实体类
④ 编写映射文件UserMapper.xml
#{}和${}的区别是什么?
- $ {} 是 Properties 文件中的变量占位符,它可以用于标签属性值和 sql 内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc. Driver。
- #{}是 sql 的参数占位符,MyBatis 会将 sql 中的#{}替换为? 号,在 sql 执行前会使用 PreparedStatement 的参数设置方法,按序给 sql 的? 号占位符设置参数值,比如 ps.setInt(0, parameterValue),#{item.name} 的取值方式为使用反射从参数对象中获取 item 对象的 name 属性值,相当于 param.getItem().getName()。
⑤ 编写核心文件SqlMapConfig.xml
⑥ 编写测试类
MyBatis的映射文件概述
MyBatis的增删改查操作
MyBatis的插入数据操作
MyBatis的修改数据操作
MyBatis的删除数据操作
MyBatis的核心配置文件概述
MyBatis核心配置文件层级关系