深入浅出 万字详解 MyBatis看这一篇就够了!

三层架构 界面层 Controller -> SpringMVC User interface layer,表示层,视图层,接受用户数据显示请求结果。使用web页面和用户交互,如jsp、html、servlet。 业务逻辑层 Service -> Spring Business logic layer,接收表示层传递的数据,检查数据计算业务逻辑,调用数据访问层获取数据。 数据访问层 Dao1 -> MyBatis Data access layer,
摘要由CSDN通过智能技术生成

三层架构

  • 界面层 Controller -> SpringMVC

    User interface layer,表示层,视图层,接受用户数据显示请求结果。使用web页面和用户交互,如jsp、html、servlet。

  • 业务逻辑层 Service -> Spring

    Business logic layer,接收表示层传递的数据,检查数据计算业务逻辑,调用数据访问层获取数据。

  • 数据访问层 Dao1 -> MyBatis

    Data access layer, 持久层。与数据库打交道,实现对数据的增、删、改、查。将数据提供给业务层,将业务层处理的数据保存到数据库。

JDBC缺陷

  1. 代码较多,开发效率低,重复代码多

  2. 需要关注Connection Statement ResultSet 对象的创建和销毁

  3. 对查询结果需要手动进行封装

  4. 业务代码和数据库操作混合

简介

早期叫做ibatis,MyBatis - MyBatis SQL Mapper Framework for Java,是一个SQL映射框架,提供数据库的操作能力,是增强的JDBC。

  • SQL Mapper - sql映射

    可以把数据库表中的一行数据映射为一个 java 对象

  • Data Access Objects - DAOs

    数据访问,对数据库执行增删改查

使用

准备

依赖项

 <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.7</version>
 </dependency>
 <dependency> <!-- MyBatis只是封装对数据库的操作,仍然需要数据库实现 -->
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.26</version>
 </dependency>

主配置文件 - mybatis.xml

 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE configuration
         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
     
     <properties resource="jdbc.properties" />
 ​
     <settings>
         <!-- 自动输出Log -->
         <setting name="logImpl" value="STDOUT_LOGGING"/>
     </settings>
 ​
     <environments default="mybatis">
         <environment id="mybatis">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
                 <property name="driver" value="${jdbc.driver}"/>
                 <property name="url" value="${jdbc.url}"/>
                 <property name="username" value="${jdbc.username}"/>
                 <property name="password" value="${jdbc.password}"/>
             </dataSource>
         </environment>
     </environments>
 ​
 </configuration>

JDBC配置文件 - jdbc.properties

 jdbc.driver=com.mysql.cj.jdbc.Driver
 jdbc.url=jdbc:mysql://localhost:3306/test
 jdbc.username=root
 jdbc.password=root

DAO层

以下代码中部分内容为 MyBatis 具体使用内容,将在下文进行详解。

 /**
  * 持久层 与数据库交互
  * */
 public interface StudentDao {
 ​
     Student selectStudentById(@Param("id") int id);
 ​
     List<Student> selectStudentIf(Student student);
 ​
     List<Student> selectStudentWhere(Student student);
 ​
     List<Student> selectStudentForEach(List<Integer> list);
 ​
     List<Student> selectStudents();
 ​
     @MapKey("id")
     HashMap<Integer, Student> selectStudentsMap();
 ​
     int insertStudent(Student student);
 ​
     int count();
 ​
 }

定义数据类

 public class Student {
     private int id;
     private String name;
     private String email;
     private int age
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值