### Mybatis实例教程知识点概述 #### 一、Mybatis简介 Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程。Mybatis可以通过简单的XML或注解来进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 #### 二、Mybatis与Hibernate的区别 1. **ORM特性**: - **Hibernate**:完全的ORM框架,开发者无需编写SQL,框架自动完成大部分工作。 - **Mybatis**:半自动ORM框架,需要手动编写SQL语句,提供了强大的SQL定制能力。 2. **应用场景**: - **Hibernate**:适用于复杂查询较少且对性能要求不是很高的项目。 - **Mybatis**:适用于需要高度定制SQL的场景,或者对性能有较高要求的应用。 3. **灵活性**: - **Hibernate**:自动映射,减少了手动编写SQL的需求,但可能会牺牲一定的灵活性。 - **Mybatis**:手动编写SQL,灵活性高,可以更好地控制查询逻辑。 #### 三、Mybatis框架原理 Mybatis的核心组件包括: 1. **SqlSessionFactory**:用于创建SqlSession的工厂。 2. **SqlSession**:提供了一个执行命令所需的所有方法。 3. **Configuration**:配置文件,包含了数据源信息、事务管理器、映射器等配置信息。 4. **Mapper接口**:定义了SQL语句和结果映射规则。 5. **Mapper映射文件**:XML文件,包含具体的SQL语句和结果映射信息。 #### 四、Mybatis开发DAO的方式 1. **原始DAO开发方式**:这种方式是Mybatis早期版本的一种开发模式,需要手动定义DAO接口和实现类。 - **优点**:易于理解和实现。 - **缺点**:代码冗余,不易维护。 2. **Mapper代理开发方式**:推荐使用,通过定义Mapper接口并结合映射文件来实现DAO功能。 - **优点**:更加简洁、易于扩展和维护。 - **缺点**:需要编写XML映射文件。 #### 五、全局配置文件与映射文件 1. **全局配置文件**:配置Mybatis的基本运行环境,如数据库连接信息、事务管理、缓存配置等。 - **配置项**:dataSource、transactionManager、typeAliases、settings等。 - **作用**:确保Mybatis能够正确地与数据库交互。 2. **映射文件**:用于定义SQL语句及其结果映射。 - **元素**:`<select>`、`<insert>`、`<update>`、`<delete>`。 - **参数**:`parameterType`指定传入参数类型,`resultType`或`resultMap`指定返回结果类型。 - **示例**: ```xml <select id="selectUserById" parameterType="int" resultType="com.example.User"> SELECT * FROM user WHERE id = #{id} </select> ``` #### 六、输入与输出映射 1. **输入映射**:通过`#{}`语法将Java对象属性与SQL语句中的参数进行绑定。 - **示例**:`WHERE name = #{name}` - **作用**:自动设置SQL参数。 2. **输出映射**:将查询结果映射到Java对象上。 - **resultType**:简单类型的直接映射。 - **resultMap**:复杂类型的映射,支持一对一、一对多关系映射。 - **示例**: ```xml <resultMap id="userResultMap" type="com.example.User"> <id property="id" column="id"/> <result property="username" column="username"/> </resultMap> ``` #### 七、动态SQL 1. **if**:根据条件选择性地拼接SQL语句。 - **示例**: ```xml <if test="name != null"> AND name = #{name} </if> ``` 2. **choose/when/otherwise**:类似于Java中的switch-case结构。 3. **foreach**:遍历集合或数组,用于批量操作。 #### 八、案例实践:订单商品案例 1. **需求**:对订单商品案例中的用户表进行增删改查操作。 - 查询用户信息。 - 模糊查询用户列表。 - 添加用户。 - 删除用户。 - 修改用户。 2. **环境准备**: - JDK:1.7 - IDE:Eclipse Indigo - Mybatis:3.2.7 - 数据库:MySQL 5.x 3. **具体步骤**: - 创建数据库表。 - 配置全局配置文件。 - 编写Mapper接口及映射文件。 - 实现业务逻辑。 - 测试功能是否正常。 通过以上内容的学习,可以深入理解Mybatis的工作原理和开发流程,并能够熟练运用Mybatis进行数据库操作。
剩余35页未读,继续阅读
- 粉丝: 9
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 光伏电池模型 Matlab Simulink仿真模型(成品) 模拟了光伏电池的输出特性,可以自行改变光照强度和温度得到多组U-P、U-I曲线 图中光照强度400,温度为25度,这两个参数均可调节
- weixin小程序项目基于JAVA微信点餐小程序设计+ssm.zip
- weixin小程序项目基于微信的乐室预约小程序+ssm.zip
- weixin小程序项目会议发布与预约系统的设计与开发+ssm.zip
- weixin小程序项目绘画学习平台+ssm.zip
- weixin小程序项目基于h 移动网赚项目设计与实现+springboot.zip
- weixin小程序项目互助学习小程序的设计与实现+ssm.zip
- weixin小程序项目个人健康数据管理系统的设计与实现+ssm.zip
- weixin小程序项目公交信息在线查询系统+ssm.zip
- 光伏电池MATLAB数据线,Visio,可自己调,可直接使用,有快速出线教程
- weixin小程序项目高校寻物平台+ssm.zip
- weixin小程序项目房屋租赁管理系统的设计与实现+ssm.zip
- weixin小程序项目高校体育场管理系统+ssm.zip
- weixin小程序项目儿童预防接种预约微信小程序+springboot.zip
- weixin小程序项目订餐系统设计与实现+ssm.zip
- weixin小程序项目电子商城购物平台的设计与开发+ssm.zip