• MyBatis


    MyBatis
    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL 、存储过程以及高级映射。 MyBatis 免除了几乎 所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO Plain Old Java Objects ,普通老式 Java 对象)为数据库中的记录。
    开发步骤
    1 、添加依赖 pom.xml
    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/xsd/maven-4.0.0.xsd" >
    4.0.0
    com.yan
    20221201
    1.0-SNAPSHOT
    war
    雇员管理系统
    8
    8
    org.mybatis
    mybatis
    3.5.11
    mysql
    mysql-connector-java
    8.0.31
    javax.servlet
    javax.servlet-api
    4.0.1
    provided
    javax.servlet.jsp
    javax.servlet.jsp-api
    2.3.3
    provided
    2 、定义数据库表
    3 、根据表结构定义对应的实体类
    javax.servlet
    jstl
    1.2
    org.projectlombok
    lombok
    1.18.24
    provided
    junit
    junit
    4.13.2
    test
    emp
    org.eclipse.jetty
    jetty-maven-plugin
    9.4.11.v20180605
    10
    8080
    /emp
    create table if not exists t_dept(
    id bigint primary key auto_increment,
    dept_name varchar ( 20 ) not null ,
    location varchar ( 50 )
    )engine=innodb default charset utf8mb4;
    4 、定义映射元文件,用于指定对应关系和对应的 SQL 语句
    @Data
    public class Dept implements Serializable {
    private Long id ;
    private String deptName ;
    private String location ;
    }
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
    namespace = "com.yan.dao.DeptMapper" >
    id = "baseMapper" type = "com.yan.entity.Dept" >
    property = "id" column = "id" jdbcType = "BIGINT" />
    property = "deptName" column = "dept_name" jdbcType = "VARCHAR" />
    property = "location" column = "location" jdbcType = "VARCHAR" />
    id = "columns" >
    id,dept_name,location
    id = "insertDept" parameterType = "DeptBean" useGeneratedKeys = "true"
    keyProperty = "id" >
    insert into t_dept(dept_name
    test = "location!=null" >
    trim 标签的用法
    如果 state title author 属性均为 null ,则生成的 SQL 语句语法错误
    ,location
    ) values(#{deptName}
    test = "location!=null" >
    ,#{location}
    )
    id = "deleteById" parameterType = "long" >
    delete from t_dept where id=#{id}
    id = "updateById" parameterType = "DeptBean" >
    update t_dept set id=#{id}
    test = "deptName!=null" >
    ,dept_name=#{deptName}
    test = "location!=null" >
    ,location=#{location}
    where id=#{id}
    where 元素只会在子元素返回任何内容的情况下才插入 WHERE 子句。如果 state title author
    null 时,则不会生成 where 子句 where标签另外提供功能,就是子句的开头为 AND OR where 元素也会将它们去除。例如 state 为null ,但是 title 不为空
    choose when otherwise 类似于 java 中的开关分支语句
    set 标签用于动态生成 update 语句中的 set 部分
    set 元素可以用于动态包含需要更新的列,忽略其它不更新的列
    set 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号(这些逗号是在使用条件语句给列赋值时引入的)
    foreach
    对集合进行遍历
    批量删除操作 delete from t_dept WHERE id in( 1 , 2 , 3 , 4 )
    批量插入操作 insert into t_dept values (?,?,?) , (?,?,?) , (?,?,?) , (?,?,?) ,
    (?,?,?)
    id = "updateAuthorIfNecessary" >
    update Author
    test = "username != null" > username=#{username},
    test = "password != null" > password=#{password},
    test = "email != null" > email=#{email},
    test = "bio != null" > bio=#{bio}
    where id=#{id}
    id = "deleteByIds" parameterType = "list" >
    delete from t_dept
    collection = "list" item = "kk" open = "id in(" close = ")"
    separator = "," nullable = "true" >
    ${kk}
    id = "insertCollection" parameterType = "list" >
    insert into t_dept
    collection = "list" open = "values" separator = "," item = "dd" >
    (#{dd.id},#{dd.deptName},#{dd.location})
  • 相关阅读:
    【最新版】ChatGPT/GPT4科研应用与AI绘图论文写作(最新增加Claude3、Gemini、Sora、GPTs技术及AI领域中的集中大模型的最新技术)
    ROS2对比ROS1的一些变化与优势(全新安装ROS2以及编译错误处理)《1》
    老徐和阿珍的故事:Runnable和Callable有什么不同?
    MongoDB入门+深入(一)
    王学岗————从零实现手写音视频通话(H265)
    7/27 训练日志(位运算+后缀数组)
    【k8s】10.网络插件
    【MRC转化为ARC Objective-C语言】
    二分法基本思路和实现
    AD单片机九齐单片机NY8B062D SOP16九齐
  • 原文地址:https://blog.csdn.net/zjh0101/article/details/128154581