判断主键是否存在, 如果存在且不为空执行update语句,如果主键不存在或为空, 执行insert语句
+ * Created by YangBin on 2020/5/12 + * Copyright (c) 2020 杨斌 All rights reserved. + */ +public interface SaveMapper这是一个例子,自己扩展时可以参考
* @@ -37,6 +40,7 @@ * @param- public interface InsertUidListMapper- */ } \ No newline at end of file diff --git a/src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java b/base/src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java similarity index 73% rename from src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java rename to base/src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java index 005f7de9c..f3daa8de2 100644 --- a/src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java +++ b/base/src/main/java/tk/mybatis/mapper/common/special/InsertUseGeneratedKeysMapper.java @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2014-2016 abel533@gmail.com + * Copyright (c) 2014-2017 abel533@gmail.com * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,6 +34,7 @@ * @param{ - @Options(useGeneratedKeys = true, keyProperty = "uid") - @InsertProvider(type = SpecialProvider.class, method = "dynamicSQL") - int insertList(List recordList); - } - * 只要修改keyProperty = "uid"就可以 - * - * 然后让你自己的Mapper继承InsertUidListMapper 即可 - * - *
- public interface InsertUidMapper- */ } \ No newline at end of file diff --git a/src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java b/base/src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java similarity index 92% rename from src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java rename to base/src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java index 6af78c38e..161c82579 100644 --- a/src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java +++ b/base/src/main/java/tk/mybatis/mapper/common/sqlserver/InsertMapper.java @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2014-2016 abel533@gmail.com + * Copyright (c) 2014-2017 abel533@gmail.com * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,6 +34,7 @@ * @param{ - @Options(useGeneratedKeys = true, keyProperty = "id") - @InsertProvider(type = SpecialProvider.class, method = "dynamicSQL") - int insertUseGeneratedKeys(T record); - } - * 只要修改keyProperty = "uid"就可以 - * - * 然后让你自己的Mapper继承InsertUidListMapper 即可 - * - *
- <bind name="countryname_bind" value='@java.util.UUID@randomUUID().toString().replace("-", "")'/> - INSERT INTO country_u(id,countryname,countrycode) VALUES - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">#{id,javaType=java.lang.Integer},</if> - <if test="id == null">#{id,javaType=java.lang.Integer},</if> - <if test="countryname != null">#{countryname,javaType=java.lang.String},</if> - <if test="countryname == null">#{countryname_bind,javaType=java.lang.String},</if> - <if test="countrycode != null">#{countrycode,javaType=java.lang.String},</if> - <if test="countrycode == null">#{countrycode,javaType=java.lang.String},</if> - </trim> -- * - * @param ms - * @return - */ public String insert(MappedStatement ms) { Class> entityClass = getEntityClass(ms); StringBuilder sql = new StringBuilder(); //获取全部列 Set
- <bind name="countryname_bind" value='@java.util.UUID@randomUUID().toString().replace("-", "")'/> - INSERT INTO country_u - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">id,</if> - countryname, - <if test="countrycode != null">countrycode,</if> - </trim> - VALUES - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">#{id,javaType=java.lang.Integer},</if> - <if test="countryname != null">#{countryname,javaType=java.lang.String},</if> - <if test="countryname == null">#{countryname_bind,javaType=java.lang.String},</if> - <if test="countrycode != null">#{countrycode,javaType=java.lang.String},</if> - </trim> -- * 这段代码可以注意对countryname的处理 - * - * @param ms - * @return - */ public String insertSelective(MappedStatement ms) { Class> entityClass = getEntityClass(ms); StringBuilder sql = new StringBuilder(); //获取全部列 Set
+ * namespace 有两种配置方法,参考下面两行注解
+ */
+@CacheNamespaceRef(CountryCacheRefMapper.class)
+//@CacheNamespaceRef(name = "tk.mybatis.mapper.cache.CountryCacheRefMapper")
+public interface CountryCacheRefMapper extends Mapper
+ * TODO MyBatis 有 Bug,这种方式目前行不通
+ */
+@CacheNamespace
+public interface CountryCacheWithXmlMapper extends Mapper