select Min(dic_id) from base_dic group by dic_type_code;用tkmybatis怎么写
时间: 2024-05-05 07:18:02 浏览: 72
您可以通过TkMyBatis的@SelectProvider注解,使用Provider类来生成SQL语句。以下是可能的Provider实现:
```java
public class BaseDicProvider {
public String selectMinDicIdByDicTypeCode() {
return new SQL(){{
SELECT("MIN(dic_id)");
FROM("base_dic");
GROUP_BY("dic_type_code");
}}.toString();
}
}
```
然后在Mapper接口中定义一个方法,使用@SelectProvider注解和provider属性引用Provider类方法:
```java
public interface BaseDicMapper {
@SelectProvider(type = BaseDicProvider.class, method = "selectMinDicIdByDicTypeCode")
Integer selectMinDicIdByDicTypeCode();
}
```
这样就可以在MyBatis中使用该方法查询最小的dic_id:
```sql
SELECT MIN(dic_id) FROM base_dic GROUP BY dic_type_code;
```
相关问题
/** matrix 自动添加库注释:库名:hbos_basedata */ --中山执行 INSERT INTO hbos_basedata.dic_config_param_value (id, customer_code, category_id, category_code, param_code, param_name, param_type, param_value, param_desc, status, is_deleted, create_by, create_time, update_by, update_time) VALUES ((select max(id) + 1 from dic_config_param_value a), 'Hbos.Emergency.Treatment.GeneralTreatment@20012004#30061002', null, 'HP00007', 'submitBeanName', '急诊普通治疗数字化(提交)', 'String', 'doctorOrderDigitalServiceImpl', '', 1, 0, -1, '2022-12-13 11:27:51', -1, '2022-12-23 11:27:51'); INSERT INTO hbos_basedata.dic_config_param_value (id, customer_code, category_id, category_code, param_code, param_name, param_type, param_value, param_desc, status, is_deleted, create_by, create_time, update_by, update_time) VALUES ((select max(id) + 1 from dic_config_param_value a), 'Hbos.Outpatient.Treatment.GeneralTreatment@20012004#30061002', null, 'HP00007', 'submitBeanName', '门诊普通治疗数字化(提交)-口腔科门诊', 'String', 'doctorOrderDigitalServiceImpl', '', 1, 0, -1, '2022-12-13 11:27:51', -1, '2022-12-23 11:27:51');
这是两条 SQL 语句用于向 `hbos_basedata.dic_config_param_value` 表中插入数据。
第一条语句插入了一条记录,其中包含了以下字段的值:
- `id`:根据已有数据的最大 `id` 值加 1 生成
- `customer_code`:'Hbos.Emergency.Treatment.GeneralTreatment@20012004#30061002'
- `category_id`:null
- `category_code`:'HP00007'
- `param_code`:'submitBeanName'
- `param_name`:'急诊普通治疗数字化(提交)'
- `param_type`:'String'
- `param_value`:'doctorOrderDigitalServiceImpl'
- `param_desc`:''
- `status`:1
- `is_deleted`:0
- `create_by`:-1
- `create_time`:'2022-12-13 11:27:51'
- `update_by`:-1
- `update_time`:'2022-12-23 11:27:51'
第二条语句插入了另一条记录,字段值与第一条类似,只有部分字段不同。
这两条语句将数据插入了名为 `hbos_basedata.dic_config_param_value` 的表中。
在kingbase select dicname as #{dic_name_key},dicvalue as #{dic_value_key},path from enbogis.sys_dic where dictype=#{dictype} 其中#{dic_name_key}和 #{dic_value_key}解析成什么是解析成"",""这个样子的吗
不是的,如果 MyBatis 在解析 SQL 语句时无法匹配到参数名,则会将参数的值设置为 null。因此,在这个 SQL 语句中,如果 MyBatis 无法匹配到参数名 dic_name_key 和 dic_value_key,则会将这两个参数的值设置为 null,而不是空字符串 ""。
需要注意的是,如果这个 SQL 语句中的 dicname 和 dicvalue 字段名是固定的,那么使用 #{...} 语法不是必须的,可以直接使用 ${...} 语法来代替。例如,可以将 SQL 语句修改为:
```
select dicname as ${dic_name_key}, dicvalue as ${dic_value_key}, path
from enbogis.sys_dic
where dictype = #{dictype}
```
这样,MyBatis 在解析 SQL 语句时会将 ${dic_name_key} 和 ${dic_value_key} 直接替换成对应的值,从而避免了使用 #{...} 语法时可能出现的参数名解析错误。
阅读全文