MyBatis 对数据库的CRUD脚本操作

<select>元素

<select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。

<select>元素的常用属性

例子: 

    <!-- 根据id查询证件信息 -->
    <select id="findCodeById" parameterType="Integer" resultType="mybatis.pojo.IdCard">
	      SELECT * from t_idcard where id=#{id}
  </select>

 

<insert>元素

 <insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,会返回一个表示插入记录数的整数。

<insert
      id="addCustomer"
      parameterType="com.po.Customer"
      flushCache="true"
      statementType="PREPARED"
      keyProperty=""
      keyColumn=""
      useGeneratedKeys=""
      timeout="20">

<insert>元素的属性与<select>元素的属性大部分相同,但还包含了3个特有属性,这3个属性的描述如下所示。

执行插入操作后,很多时候需要返回插入成功的数据生成的主键值,此时就可以通过上面讲解的3个属性来实现。

对于支持主键自助增长的数据库(如MySQL),可以通过如下配置实现

<insert id="addCustomer" parameterType="com.po.Customer"
            keyProperty="id" useGeneratedKeys="true" >
      insert into t_customer(username,jobs,phone)
      values(#{username},#{jobs},#{phone})
</insert>

返回主键id


    <insert id="insertIdCard" parameterType="mybatis.pojo.IdCard"  useGeneratedKeys="true" >
        <selectKey keyColumn="id" order="AFTER" resultType="Integer"  statementType="PREPARED">
            SELECT LAST_INSERT_ID()
        </selectKey>
        INSERT INTO t_idcard (code)
        VALUES (#{code})
    </insert>

 添加selectkey 标签实现主键返回

keyproperty 指定返回的主键 存储在pojo中的那个属性上

order selectkey 标签中的sql的执行顺出 相对于insert语句来说

resultype 返回主键对应的java类型

 LAST_INSERT_ID() 是mysql 的函数 返回auto_increment 自增列新记录id值

对于不支持主键自助增长的数据库(如Oracle),可以通过如下配置实现

    <!-- 对于不支持自动生成主键的数据库,或取消自主增长规则的数据库可以自定义主键生成规则 -->
    <insert id="insertCard" parameterType="mybatis.pojo.IdCard">
        <selectKey keyProperty="id"  keyColumn="id" resultType="Integer" order="BEFORE">
            select if(max(id) is null, 1, max(id) +1) as id from t_idcard
        </selectKey>
        insert into t_idcard(id,code) values(#{id},#{code})
    </insert>

<update>和<delete>元素

<update id="updateCustomer" parameterType="com.po.Customer">
       update t_customer 
       set username=#{username},jobs=#{jobs},phone=#{phone}
       where id=#{id}
</update>

<delete id="deleteCustomer" parameterType="Integer">
        delete from t_customer where id=#{id}
</delete>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值