Mybatis的学习方法?

本文介绍了Mybatis框架的背景、特点、组成部分和映射概念,包括核心对象、核心配置文件、映射文件的语法等,并通过实例展示了如何创建工程、配置pom.xml、创建实体类、mapper接口、映射文件以及测试类。最后,提出了通过MybatisUtil工具类简化测试代码的方法。
摘要由CSDN通过智能技术生成

目录

为什么使用框架技术?

常用的框架技术

1、Spring

2、SpringMVC

3、Mybatis

Mybatis框架

Mybatis背景

Mybatis特点

Mybatis组成部分:

1、核心对象

2、核心配置文件

Mybatis映射

1、映射文件的语法

2、namespace:命名空间

3、id: 命名空间中唯一的标识符

4、parameterType: 参数类型

5、resultType:返回值类型

6、resultMap:对外部resultMap的引用

(1)根据用户角色id获取用户列表-association

(2)获取指定用户的相关信息及其地址列表-collection

理论是实践的基础,接下来操作实战:

首先创建工程,配置pom.xml

1、创建实体类

2、mapper的接口

3、创建PersonMapper.xml文件

4、创建测试类TestMybastis

这时会发现很多重复的代码,我们可以创建工具类MybatisUtil,使其更加简单

通过MybatisUtil工具类,这样的测试代码就会简单很多:


为什么使用框架技术?

通过框架来制定开发规范,更进一步保证所有开发人员能够快速编写出统一的代码,让开发人员专注于业务实现

常用的框架技术

1、Spring

Spring是一个J2EE的框架,这个框架提供了对轻量级IOC的良好支持,同时也提供了对AOP技术非常好的封装,相比于其他的框架,
Spring框架的设计更加模块化,框架内的每个模块都能完成特定的工作,而且各个模块可以独立的运行,不会相互的前置,
因此,在使用Spring框架的时候,我们可以使用整个框架,也可以使用框架中的一部分

2、SpringMVC

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,
把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

3、Mybatis

Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
ORM框架,(只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中)

Mybatis框架

Mybatis背景

MyBatis前身是iBatis,本是Apache的一个开源的项目

Mybatis特点

灵活性能高,耦合度低

程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高
基于SQL语法,简单易学
SQL语句封装在配置文件中,便于统一管理与维护

Mybatis组成部分:

1、核心对象

通过SqlSessionFactoryBuilder才能创建SqlSessionFactory,才能拓展到SqlSession

SqlSessionFactoryBuilder:
SqlSessionFactory:MyBatis应用的核心
SqlSession

2、核心配置文件

mybatis-config.xml文件中

<environments default="development">  						//默认的运行环境 ID
<environment id="development">								//运行环境 ID
<transactionManager type="JDBC"/>							//事务管理器配置
<dataSource type="POOLED">									//数据源配置
    <property name="driver" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://localhost:3306/smbms"/>
	<property name="user" value="root"/>
	<property name="password" value="root"/>
</dataSource>
</environment>
</environments>

当然,我们也可以创建一个jdbc.properties使用配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_mybatis
jdbc.user=root
jdbc.password=ok

再在mybatis-config.xml文件中更改

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
        "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
    <properties resource="jdbc.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/happy/mapper/PersonMapper.xml"/>
    </mappers>
</configuration>

Mybatis映射

作用是映射实体类和数据库当中的表

1、映射文件的语法

<mapper namespace="cn.dao.UserMapper">    
    <select id="count" resultType="java.lang.Integer">        
        select count(1) from user    
    </select>
</mapper>

2、namespace:命名空间

namespace的命名必须跟某个接口同名
也就是
namespace配置接口的全路径

3、id: 命名空间中唯一的标识符

接口中的方法与映射文件中的SQL语句id一一对应,id不能重复

4、parameterType: 参数类型

传入SQL语句的参数类型

5、resultType:返回值类型

SQL语句返回值类型的完整类名或别名

基本数据类型

6、resultMap:对外部resultMap的引用

应用场景:
数据库字段信息与对象属性不一致
复杂的联合查询,自由控制映射结果
二者不能同时存在,本质上都是Map数据结构

核心思想:

id
一般对应数据库中该行的主键id,设置此项可提高MyBatis性能

result
映射到JavaBean的某个“简单类型”属性

association
映射到JavaBean的某个“复杂类型”属性,比如JavaBean类

collection
映射到JavaBean的某个“复杂类型”属性,比如集合

(1)根据用户角色id获取用户列表-association

association
复杂的类型关联,一对一
内部嵌套
映射一个嵌套JavaBean
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是MyBatis框架的学习笔记: MyBatis是一种基于Java的持久层框架,它通过XML描述符或注解将对象映射到数据库中。它提供了自定义SQL、存储过程和高级映射等功能,使得开发人员可以更加灵活地控制SQL语句的执行过程。 MyBatis的核心组件包括SqlSessionFactory、SqlSession和Mapper。其中,SqlSessionFactory是MyBatis的核心接口,它负责创建SqlSession对象。SqlSession是MyBatis的核心类,它提供了执行SQL语句、获取Mapper接口等功能。Mapper是MyBatis的映射器接口,它定义了SQL语句和Java方法之间的映射关系。 MyBatis的优点包括: 1. 灵活性高:MyBatis提供了自定义SQL、存储过程和高级映射等功能,使得开发人员可以更加灵活地控制SQL语句的执行过程。 2. 易于使用:MyBatis的API简单易用,开发人员可以快速上手。 3. 易于维护:MyBatis的SQL语句和Java方法之间的映射关系清晰明了,易于维护。 4. 性能高:MyBatis采用了预编译和缓存等技术,可以提高SQL语句的执行效率。 以下是一个使用MyBatis框架的Java代码示例: ```java // 创建SqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创建SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); try { // 获取Mapper接口 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 执行SQL语句 User user = userMapper.selectUserById(1); // 输出结果 System.out.println(user); } finally { // 关闭SqlSession对象 sqlSession.close(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值