学习笔记-MyBatis 的使用

MyBatis学习笔记|2024最新版Mybatis 创建mapper接口 创建MyBatis的映射文件 相关概念:ORM(Object Relationship Mapping)对象关系映射。 对象:Java的实体类对象 关系:关系型数据库 映射:二者之间的对应关系 Java概念 数据库概念 类 表 属性 字段/列 对象 记录/行 映射文件的命名规则 表所对应的实体类的类名+Mapper.xml 例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapp 阅读详情

目录

为什么要用MyBatis ?

传统的 JDBC 七个步骤

优化 JDBC 操作

优化空间

什么是MyBatis ?

使用MyBatis

1. 引入第三方依赖

2. 修改配置

3. 创建Mapper 层 (Dao层)

4. 写 SQL 映射文件

测试

注册 Mapper 层映射文件

设置带参方法

优化 MyBatis 操作过程

Service 业务层

Controller 控制层

增删改记录注意事项

开启提交事务

自动提交

手动提交

优化 MyBatis 

一、引入第三方依赖

二、新建 mybatis-spring 配置文件

三、修改 mybatis 配置文件

四、修改 web.xml 配置文件


为什么要用MyBatis ?

传统的 JDBC 七个步骤

1. 加载驱动

2. 获取数据库连接

3. 创建SQL 语句

4. 获取可执行对象

5. 执行SQL语句

6. 获取结果集

7. 释放资源

优化 JDBC 操作

对 1,2,7 进行了优化,数据库连接工具类 ->  再次优化,创建了连接池

 3,4,5,6 做了通用的查询等方法,从数据库查询出来的记录封装为 POJO 对象,也就是ORM映射

优化空间

1. 因为数据库连接池是自己手写的,连接数量是固定的,这一点不好,如果访问数量太多,就会不够用,如果访问数量很少,就浪费了。解决办法:使用 C3P0 或者 Druid 数据库连接池技术

2. 查询获取结果集后,需要写遍历结果集,再通过 new 或者 反射创建POJO对象,封装结果集

3. SQL 硬编码,SQL 语句写在代码里,耦合度太高,如果项目上线后需要修改,需要重新打包上线

那怎么解决这些问题呢?

这就可以用到了 MyBatis

什么是MyBatis ?

MyBatis  是一个优秀的基于 Java 的持久层框架,也就是我们说的Dao层,它内部封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要花费精力,去处理加载驱动、创建连接、创建statement等繁杂的过程。

MyBatis 中文网 官网

使用MyBatis

新建项目

1. 引入第三方依赖

打开 pom.xml 配置文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.shao</groupId>
  <artifactId>ecard-back</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ecard-back Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.14</version>
    </dependency>

    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <version>8.0.32</version>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>2.0.49</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.30</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId> <!--Spring 的ioc容器-->
      <version>5.3.30</version>
    </dependency>

  </dependencies>
  <build>
    <finalName>ecard-back</finalName>
  </build>
</project>

2. 修改配置

新建 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>

</configuration>

打开官网看文档怎么配置

修改配置

3. 创建Mapper 层 (Dao层)

新建一个Mapper包,创建AdminMapper接口 ,定义一个功能的名字

在 resources 包 创建一个文件夹,创建一个xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.Mapper.AdminMapper">

</mapper>

下载 MyBatisX 插件 

4. 写 SQL 映射文件

鼠标放在波浪线上,点击 Generate statement ,选择操作类型,例如 select ,系统会自动创建配置文件的 SELECT 标签

定义 SQL 语句

测试

创建测试类

package com.Test;

import com.Mapper.AdminMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class test {
    public static void main(String[] args) {
        // 实现使用 MyBatis 进行数据库操作
        /*
        * 1. 读取配置文件
        * 2. 创建SqlSessionFactoryBuild 工厂建造器(创建连接工厂用的)
        * 3. 创建连接工厂
        * 4.创建一个连接
        * 5.通过连接获取mapper对象,调用mapper对象的方法
        * */

        try {
            // 通过资源文件路径获取InputStream,用于构建SqlSessionFactory
            InputStream rsa = Resources.getResourceAsStream("mybatis-config.xml");
            // 创建SqlSessionFactoryBuilder实例
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            // 使用Builder模式构建SqlSessionFactory
            SqlSessionFactory sessionFactory = sqlSessionFactoryBuilder.build(rsa);
            // 创建一个数据库连接
            SqlSession SqlSession = sessionFactory.openSession();
            // 通过SqlSession获取AdminMapper接口的实现,用于执行SQL操作
            // 通过动态代理实现AdminMapper接口
            AdminMapper mapper = SqlSession.getMapper(AdminMapper.class);
            // 调用GetAdminCount方法
            int count = mapper.GetAdminCount();
            System.out.println("记录条数:"+count);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行报错,这是因为没有注册接口

注册 Mapper 层映射文件

在 mybatis-config.xml 配置文件注册,把 Mapper 层的映射文件注册到 mybatis 

测试成功

设置带参方法

参数两个及以上需要加上 @Param 注解

参数是集合,也需要加上注解

优化 MyBatis 操作过程

在测试类中,有些代码是需要更改的,例如 调用接口里的 GetAdminCount 方法,调用其他方法怎么办?总不能修改后再调用吧 

创建 mybatis 工具类,通过工具类动态的调用方法

package com.Util;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
public class mybatisUtil {
    private static SqlSession SqlSession;
    static {
        // 通过资源文件路径获取InputStream,用于构建SqlSessionFactory
        InputStream rsa = null;
        try {
            rsa = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 创建SqlSessionFactoryBuilder实例
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 使用Builder模式构建SqlSessionFactory
        SqlSessionFactory sessionFactory = sqlSessionFactoryBuilder.build(rsa);
        // 创建一个数据库连接
        SqlSession = sessionFactory.openSession();
    }
    public static <T> T getMapper(Class<T> clazz) {

        return SqlSession.getMapper(clazz);
    }
}

在业务层通过调用 mybatis 工具类,获取 Mapper 对象,再通过 Mapper 调用方法

Service 业务层

创建一个包,创建一个Service 接口,创建一个实现接口的包

创建 DTO 类 

package com.Util;

public class responseDTO {
    private int status;
    private Object data;
    private String message;
    private int count;
    public responseDTO() {
    }

    public responseDTO(int status, Object data, String message, int count) {
        this.status = status;
        this.data = data;
        this.message = message;
        this.count = count;
    }


    /**
     * 获取
     * @return statusCode
     */
    public int getStatus() {
        return status;
    }

    /**
     * 设置
     * @param status
     */
    public void setStatus(int status) {
        this.status = status;
    }

    /**
     * 获取
     * @return data
     */
    public Object getData() {
        return data;
    }

    /**
     * 设置
     * @param data
     */
    public void setData(Object data) {
        this.data = data;
    }

    /**
     * 获取
     * @return statusMsg
     */
    public String getMessage() {
        return message;
    }

    /**
     * 设置
     * @param message
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * 获取
     * @return count
     */
    public int getCount() {
        return count;
    }

    /**
     * 设置
     * @param count
     */
    public void setCount(int count) {
        this.count = count;
    }

    public String toString() {
        return "responseDTO{status = " + status + ", data = " + data + ", message = " + message + ", count = " + count + "}";
    }
}

创建 Service 接口的实现类

Controller 控制层

 1. 新建 spring.xml 配置文件

2. 修改 Tomcat 的 web.xml 配置文件

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

<display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring.xml</param-value>
    </init-param>

    <!--启动Ioc 容器-->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

 

3. 获取 Servcie 层实现类的 Bean,创建 Controller 类

通过 spring 工具类手动获取

1. 创建 spring 工具类

 2. 创建控制层

通过 @Autowired 注解自动获取

1. 控制层

package com.Controller;

import com.Service.AdminService;
import com.Util.responseDTO;
import com.alibaba.fastjson2.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/Admin")
public class AdminController {

    @Autowired
    AdminService adminService;  // 注解告诉Spring框架自动将 AdminService 接口的实现类的实例注入到该字段中,无需手动创建对象。
    @RequestMapping("/Login")
    @ResponseBody
    public String Login(String account, String password){

        // 调用业务层
        responseDTO responseDTO = adminService.Login(account, password);
        // 返回数据
        return JSON.toJSONString(responseDTO);
    }
}

@Autowired 注解告诉 Spring 框架自动将 AdminService 业务层接口的实现类 的实例注入到字段中,无需手动创建对象

当一个类使用 @Autowired 注解时,Spring的IoC容器会自动查找与注解的类型相匹配的bean,并将其注入到相应的字段、构造函数或方法参数中

配置 Tomcat 

测试

登录成功

增删改记录注意事项

Mapper 层

定义SQL语句

Service 层

控制层

提交成功

数据库没有新增记录

开启提交事务

为什么返回成功信息,数据库却没有新增记录呢?

这是因为,增删改都会涉及到数据修改,为了安全,MyBatis 默认开启了事务,但是没有设置自动提交,所以我们需要手动提交或者开启自动提交

自动提交

在mybatis 工具类修改 openSession 的参数

手动提交

在 Service 层调用工具类获取 SqlSession 开启提交事务

成功添加

优化 MyBatis 

每次新建一个 Mapper 层的映射文件都需要 在 mybatis 配置文件中注册映射文件

每次通过 工具类获取 Mapper 层的实例

那可以让它自动注册到 MyBatis 吗?

可以通过注解自动获取 Mapper 层的实例吗?

可以的,MyBatis 提供了 MyBatis 和Spring 的整合

一、引入第三方依赖
    <!-- MyBatis与Spring的集成库,用于简化MyBatis在Spring环境中的使用 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.1.2</version>
    </dependency>
<!-- Spring的JDBC抽象层,提供统一的数据库访问API,隐藏了数据库连接的细节 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.30</version>
    </dependency>
<!-- Druid是一个数据库连接池 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.8</version>
    </dependency>
<!-- Spring的事务管理器 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.3.30</version>
    </dependency>

二、新建 mybatis-spring 配置文件

新建数据库配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:utils="http://www.springframework.org/schema/util"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
    <!--配置数据库连接信息-->
    <utils:properties id="db" location="classpath:db.properties"/>

    <!--配置数据源,druid-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="#{db.driver}"/>
        <property name="url" value="#{db.url}"/>
        <property name="username" value="#{db.username}"/>
        <property name="password" value="#{db.password}"/>

    </bean>

    <!-- 配置 mybatis 的 sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--配置数据源 -->
        <property name="dataSource" ref="dataSource"/>
        <!--mybatis 配置文件位置 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!-- mapper 的配置文件-->
        <property name="mapperLocations" value="classpath:Mapper/*.xml"/>
    </bean>

    <!-- mapper 的接口配置,让 spring 接管mapper的实现类-->
    <bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.Mapper"/>
    </bean>
</beans>

自动注册 Mapper 层的映射文件

指向 mybatis 配置文件

三、修改 mybatis 配置文件

然后就可以把数据库连接的配置和注册映射文件的配置注销掉了

可是 mybatis-spring.xml 配置文件有被读取吗?没有,

那什么时候需要读取这个配置文件呢?Web 服务器启动时加载这个配置文件

四、修改 web.xml 配置文件

然后就可以使用注解获取 Mapper 层的实例了

YOLO系列专栏(六):YOLO26热力图可视化 | 解析模型推理逻辑,定位检测关键区域 YOLO26作为新一代目标检测模型,其核心优势是高效的特征提取和精准的目标定位,但模型内部的推理过程的“黑盒”特性,给我们的优化带来了很大困扰:❌ 检测精度低:不知道是模型没学到关键特征,还是特征提取不充分;❌ 出现误检/漏检:无法定位问题根源——是锚框不合适?还是特征图未捕捉到目标?❌ 模型优化盲目:调参、修改网络结构全靠“猜”,缺乏针对性;❌ 难以解释模型行为:实际项目中,需要说明模型“为什么检测到这个目标”,尤其是医疗、工业等对可解释性要求高的场景。而热力图可视化。 阅读详情

相关推荐

人形机器人硬件开发:骨架系统设计全攻略

本文以人形机器人骨架系统为核心研究对象,系统解析其从理论建模到工程实现的全流程设计方法。通过融合刚体力学、材料科学与机器人控制理论,构建"概念基础-理论框架-架构设计-实现机制-实际应用-高级考量-综合拓展"的七层分析体系。重点覆盖运动学/动力学建模、轻量化结构设计、关节模块集成、多物理场耦合优化等关键技术,结合波士顿动力Atlas、本田ASIMO等经典案例,提供从原型设计到量产验证的工程实践指南。

AI天才研究院 1871

Mybatis学习笔记

@TOCMyBatis学习笔记 开始学习ssm框架,记录一下学习笔记 文章目录前言一、Mybatis的创建及部署2.读入数据二、使用步骤1.引入库2.读入数据总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提

qq_43501908的博客 127

80MHz~100MHz频谱分析仪设计

由理论分析可知,经过乘法器后输出的信号为频率为w1+w2的高频信号和w1-w2的低频信号,除了想要采样的直流信号外,最小的信号频率为100kHz。因此,经过一系列推导可以得到该滤波器的元件C1,C2,C3,R1,R2的近似值分别为:C1=2.36nF,C2=32.1nF,C3=1.07nF,R1=1.39k,R2=2.84k。AK,此时的频率w2即为被测信号的频率,待测信号源电压幅度为,因此为了能达到直流采样的设计,我们将本振源的频率输出范围做成80~110 MHz,提高了题目的频率要求。

qq_48771816的博客 5242

Mybatis以及Mybatis-plus的学习笔记

求2021年最新的mybatis和mybatis-plus的学习笔记

Cherrydan的博客 127

如何选择StandardScaler、MinMaxScaler和RobustScaler做标准化的对比解释和示例代码

选择合适的标准化方法取决于数据的特点和需求。如果数据分布接近正态分布且无异常值,可以使用。如果需要将数据映射到特定范围内并保持相对关系,可以使用。如果数据中存在异常值或离群点,可以使用进行鲁棒标准化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好(避免不同量纲对方差、协方差计算的影响);在不涉及距离度量、协方差、数据不符合正态分布、异常值较少的时候,可使用MinMaxScaler。

qq_36001281的博客 4939

CANoe VLAN配置的艺术:如何通过脚本自动化实现高效车载网络测试

本文深入探讨了CANoe VLAN配置的自动化实现,通过CAPL脚本与Python工具链的结合,提升车载网络测试效率。重点解析了硬件侧VLAN配置与软件侧VLAN配置的交互机制,并提供了实用的脚本开发示例和调试技巧,帮助工程师快速构建高效的自动化测试方案。

qqq44的博客 616

MyBatis学习笔记

本文介绍了MyBatis的用法。

2301_80073794的博客 934

华为OD机考双机位C卷 - 手机App防沉迷系统(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 手机App防沉迷系统(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 2061

mybatis学习笔记

mybatis学习笔记

qq_62383709的博客 983

C# 实现 Modbus 通信全教程(支持 TCP 和 RTU,含完整错误处理)

环境准备:安装 NModbus4 库,明确设备参数(IP/串口、地址、数据类型);连接设备:TCP 用 TcpClient,RTU 用 SerialPort,注意超时和参数匹配;读写数据:根据数据类型调用对应方法(读保持寄存器用 ReadHoldingRegisters);错误处理:捕获连接、超时、协议等异常,针对性排查问题。掌握这些后,即可轻松实现与工业设备的 Modbus 通信,为上位机开发提供稳定的数据交互能力。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2066

记录一次Spring Framework 漏洞修复的过程

摘要:针对Spring Boot 2.6.13项目在阿里云漏洞扫描中发现的Spring Framework目录遍历漏洞(CVE-2024-38819),首先分析了漏洞成因,确认5.3.23版本存在风险。解决方案包括升级Spring Boot至2.7.18(对应Spring Framework 5.3.41)或6.0+版本,但后者需JDK17支持。临时方案通过配置HttpFirewall限制特殊字符,最终借助阿里云防护服务暂时解决问题。建议长期解决方案仍需升级至安全版本(Spring Boot 6.1.14或

极客栈 1486

Mybatis学习笔记 - 02

关于 Mybatis 的基本增删改查操作

鱼开饭的博客 3500

第78章:PCL Multiple View ICP 多视角配准

多视角配准(Multiple View ICP)是迭代最近点(ICP)算法的扩展,旨在处理多视角的点云数据配准问题。传统的ICP算法主要用于两幅点云之间的配准,而多视角配准则处理来自多个视角或不同时间采集的多个点云数据的配准任务。在实际应用中,多个传感器或多个拍摄角度获得的点云数据常常需要进行联合配准。这些点云可能由于不同的视角、拍摄位置或时间差异而存在位置和旋转的差异。多视角配准的目标是根据多个点云之间的匹配关系,找到它们的相对变换,使得这些点云能够合并成一个统一的三维模型。

yumeiguo的博客 158

MyBatis-Plus——学习笔记

有一些业务场景,比如上面减200的场景,setSql不是在Mapper层实现的,是在业务层实现的,这违反了很多企业的规范,还有比如下图也是,查询的字段要count还要别名,这MP不擅长所以,解决这个问题的方法是。

2501_90975132的博客 787

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mybatis学习笔记之动态sql

在上一篇mybatis学习笔记中,已经学习了基础的增删改查操作,但在实际业务中,需求是动态的,复杂的,例如在进行网购手机时,你可以只在搜索框中输入手机,还可以加上品牌,配置等信息。此时在前面的学习中我们的SQL就不能满足要求了``文章项目的配置信息和上一篇博客一致,地址为项目配置信息如果不理解动态sql的拼装,可以在控制台的日志信息中查看拼装后的sql语句,再结合代码进行理解,下图为test01的拼装后的sql语句。

jocer_zhu的博客 1172

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

学习笔记 - Mybatis

Maven配置: 设置mybatis-config.xml文件 配置db.properties 创建工具类, 获取SqlSession 编写实体类 编写dao层 编写impl实现之前是使用UserDaoImpl实现类去实现接口, 现在使用xml文件替代impl实现 使用单元测试进行测试 排错如果报错为: 绑定异常原因: UserMapper.xml中的没有在核心配置文件mybatis-config.xml中绑定解决办法是在核心配置文件mybatis-config.xml中加入

CLXKZJ的博客 331

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【MyBatis学习笔记】MyBatis基础学习

MyBatis是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录MyBatis是一个半自动的ORM(Object Relation Mapping)框架建议分成两种情况进行处理实体类类型的参数使用@Param标识参数。

IT小小白的博客 263
上一篇: 学习笔记-Spring常用注解
下一篇: 学习笔记- MyBatis 动态 SQL
LearnTech_123
博客等级 码龄3年 445粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值