Mybatis代码生成器Mybatis-Generator使用详解( 八 )

selectOne(SelectStatementProvider selectStatement);@Generated("org.mybatis.generator.api.MyBatisGenerator")@SelectProvider(type=SqlProviderAdapter.class, method="select")@Results(id="OrderResult", value = {@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),@Result(column="order_id", property="orderId", jdbcType=JdbcType.VARCHAR),@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),@Result(column="amount", property="amount", jdbcType=JdbcType.DECIMAL),@Result(column="order_status", property="orderStatus", jdbcType=JdbcType.TINYINT)})List selectMany(SelectStatementProvider selectStatement);@Generated("org.mybatis.generator.api.MyBatisGenerator")@UpdateProvider(type=SqlProviderAdapter.class, method="update")int update(UpdateStatementProvider updateStatement);@Generated("org.mybatis.generator.api.MyBatisGenerator")default long count(CountDSLCompleter completer) {return MyBatis3Utils.countFrom(this::count, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int delete(DeleteDSLCompleter completer) {return MyBatis3Utils.deleteFrom(this::delete, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int deleteByPrimaryKey(Long id_) {return delete(c ->c.where(id, isEqualTo(id_)));}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int insert(Order record) {return MyBatis3Utils.insert(this::insert, record, order, c ->c.map(id).toProperty("id").map(orderId).toProperty("orderId").map(createTime).toProperty("createTime").map(amount).toProperty("amount").map(orderStatus).toProperty("orderStatus"));}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int insertSelective(Order record) {return MyBatis3Utils.insert(this::insert, record, order, c ->c.map(id).toProperty("id").map(orderId).toPropertyWhenPresent("orderId", record::getOrderId).map(createTime).toPropertyWhenPresent("createTime", record::getCreateTime).map(amount).toPropertyWhenPresent("amount", record::getAmount).map(orderStatus).toPropertyWhenPresent("orderStatus", record::getOrderStatus));}@Generated("org.mybatis.generator.api.MyBatisGenerator")default Optional selectOne(SelectDSLCompleter completer) {return MyBatis3Utils.selectOne(this::selectOne, selectList, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default List select(SelectDSLCompleter completer) {return MyBatis3Utils.selectList(this::selectMany, selectList, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default List selectDistinct(SelectDSLCompleter completer) {return MyBatis3Utils.selectDistinct(this::selectMany, selectList, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default Optional selectByPrimaryKey(Long id_) {return selectOne(c ->c.where(id, isEqualTo(id_)));}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int update(UpdateDSLCompleter completer) {return MyBatis3Utils.update(this::update, order, completer);}@Generated("org.mybatis.generator.api.MyBatisGenerator")static UpdateDSL updateAllColumns(Order record, UpdateDSL dsl) {return dsl.set(id).equalTo(record::getId).set(orderId).equalTo(record::getOrderId).set(createTime).equalTo(record::getCreateTime).set(amount).equalTo(record::getAmount).set(orderStatus).equalTo(record::getOrderStatus);}@Generated("org.mybatis.generator.api.MyBatisGenerator")static UpdateDSL updateSelectiveColumns(Order record, UpdateDSL dsl) {return dsl.set(id).equalToWhenPresent(record::getId).set(orderId).equalToWhenPresent(record::getOrderId).set(createTime).equalToWhenPresent(record::getCreateTime).set(amount).equalToWhenPresent(record::getAmount).set(orderStatus).equalToWhenPresent(record::getOrderStatus);}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int updateByPrimaryKey(Order record) {return update(c ->c.set(orderId).equalTo(record::getOrderId).set(createTime).equalTo(record::getCreateTime).set(amount).equalTo(record::getAmount).set(orderStatus).equalTo(record::getOrderStatus).where(id, isEqualTo(record::getId)));}@Generated("org.mybatis.generator.api.MyBatisGenerator")default int updateByPrimaryKeySelective(Order record) {return update(c ->c.set(orderId).equalToWhenPresent(record::getOrderId).set(createTime).equalToWhenPresent(record::getCreateTime).set(amount).equalToWhenPresent(record::getAmount).set(orderStatus).equalToWhenPresent(record::getOrderStatus).where(id, isEqualTo(record::getId)));}}极简XML映射文件极简XML映射文件生成只需要简单修改配置文件:
<context id="default" targetRuntime="MyBatis3Simple">...<javaClientGenerator type="XMLMAPPER"...生成三个文件:
// club.throwable.entitypublic class Order {private Long id;private String orderId;private Date createTime;private BigDecimal amount;private Byte orderStatus;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getOrderId() {return orderId;}public void setOrderId(String orderId) {this.orderId = orderId;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public BigDecimal getAmount() {return amount;}public void setAmount(BigDecimal amount) {this.amount = amount;}public Byte getOrderStatus() {return orderStatus;}public void setOrderStatus(Byte orderStatus) {this.orderStatus = orderStatus;}}// club.throwable.daopublic interface OrderMapper {int deleteByPrimaryKey(Long id);int insert(Order record);Order selectByPrimaryKey(Long id);List<Order> selectAll();int updateByPrimaryKey(Order record);}// mappings<?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="club.throwable.dao.OrderMapper"><resultMap id="BaseResultMap" type="club.throwable.entity.Order"><id column="id" jdbcType="BIGINT" property="id"/><result column="order_id" jdbcType="VARCHAR" property="orderId"/><result column="create_time" jdbcType="TIMESTAMP" property="createTime"/><result column="amount" jdbcType="DECIMAL" property="amount"/><result column="order_status" jdbcType="TINYINT" property="orderStatus"/></resultMap><delete id="deleteByPrimaryKey" parameterType="java.lang.Long">deletefrom t_orderwhere id = #{id,jdbcType=BIGINT}</delete><insert id="insert" parameterType="club.throwable.entity.Order"><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">SELECT LAST_INSERT_ID()</selectKey>insert into t_order (order_id, create_time, amount,order_status)values (#{orderId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{amount,jdbcType=DECIMAL},#{orderStatus,jdbcType=TINYINT})</insert><update id="updateByPrimaryKey" parameterType="club.throwable.entity.Order">update t_orderset order_id= #{orderId,jdbcType=VARCHAR},create_time= #{createTime,jdbcType=TIMESTAMP},amount= #{amount,jdbcType=DECIMAL},order_status = #{orderStatus,jdbcType=TINYINT}where id = #{id,jdbcType=BIGINT}</update><select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">select id, order_id, create_time, amount, order_statusfrom t_orderwhere id = #{id,jdbcType=BIGINT}</select><select id="selectAll" resultMap="BaseResultMap">select id, order_id, create_time, amount, order_statusfrom t_order</select><resultMap id="BaseResultMap" type="club.throwable.entity.Order"><id column="id" jdbcType="BIGINT" property="id"/><result column="order_id" jdbcType="VARCHAR" property="orderId"/><result column="create_time" jdbcType="TIMESTAMP" property="createTime"/><result column="amount" jdbcType="DECIMAL" property="amount"/><result column="order_status" jdbcType="TINYINT" property="orderStatus"/></resultMap><delete id="deleteByPrimaryKey" parameterType="java.lang.Long">deletefrom t_orderwhere id = #{id,jdbcType=BIGINT}</delete><insert id="insert" parameterType="club.throwable.entity.Order"><selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Long">SELECT LAST_INSERT_ID()</selectKey>insert into t_order (id, order_id, create_time,amount, order_status)values (#{id,jdbcType=BIGINT}, #{orderId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},#{amount,jdbcType=DECIMAL}, #{orderStatus,jdbcType=TINYINT})</insert><update id="updateByPrimaryKey" parameterType="club.throwable.entity.Order">update t_orderset order_id= #{orderId,jdbcType=VARCHAR},create_time= #{createTime,jdbcType=TIMESTAMP},amount= #{amount,jdbcType=DECIMAL},order_status = #{orderStatus,jdbcType=TINYINT}where id = #{id,jdbcType=BIGINT}</update><select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">select id, order_id, create_time, amount, order_statusfrom t_orderwhere id = #{id,jdbcType=BIGINT}</select><select id="selectAll" resultMap="BaseResultMap">select id, order_id, create_time, amount, order_statusfrom t_order</select></mapper>


推荐阅读