Spring boot中Mybatis常用的Mysql语句(增删改查与表连接)

配置mapper的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">//interface接口地址
  <resultMap id="BaseResultMap" type="com.*.*Entity">//实体类地址
    <id column="unid" jdbcType="INTEGER" property="unid" />
    <result column="name" jdbcType="VARCHAR" property="name" />
    <result column="class" jdbcType="VARCHAR" property="class" />
    
  </resultMap>

增加一条字段:

  <insert id="insertStudent"//方法名        parameterType="com.*.*Entity">
insert into table_test
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="name != null">
        name,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=INTEGER},
      </if>
      <if test="name!= null">
        #{name,jdbcType=VARCHAR},
      </if>
    </trim>
</insert>

删除一条字段:

  <delete id="deleteStudent" parameterType="java.lang.String">
    delete from table_test
    where id= #{id,jdbcType=INTEGER}
  </delete>

修改一条字段:

  <update id="updateStudent" parameterType="com.*.*Entity">
    update table_test
<set>
     <if test="id != null">
        id= #{id,jdbcType=INTEGER},    //新数据
      </if>
</set>
    where id=#{id,jdbcType=INTEGER}    //原数据
  </update>

搜索字段:

  <sql id="Base_Column_List">
     name,class
  </sql>
  
<select id="select" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />        
//Base_Column_List等价于id="Base_Column_List"语句
    from table_test
    where 
      <if test="name != null">
        and name = #{name, jdbcType=INTEGER}
      </if>
      <if test="class != null">
        and clas = #{class, jdbcType=INTEGER}
      </if>
    order by id desc        //通过ID降序排序
    limit 1                //仅限一条数据
  </select>

常用的数据库方法名:

InsertStundent添加一条学生数据;deleteStudent删除;updateStundent更新;selectStundent搜索

数据库连接的三种方式:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

内连接案例

表一test_1           表二test_2

 

select  *
from test_1
inner JOIN test_2
on test_1.id=test_2.id
WHERE test_1.`name`=test_2.`name`

结果

  • JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • 左右连接一般使用一个即可
  • 案例为LeetCode上的题目

select FirstName,LastName,City,State
from Person left join Address 
on Person.PersonId=Address.PersonId

 

  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值