1. insert 用法:
(1).未添加主键情况下,插入正常
(2).在添加主键后,报错
{
"config_id":"a96f8a45aa514ef596da41f24779871b",
"configName":"aaa",
"configContent":"1111",
"createdDate":"2019-08-06 15:45:00",
"updatedDate":"2019-08-06 15:45:00",
"groupCode":"001"
}
错误:
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (GMRJ.SYS_C00125724
2.*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="*.dao.ConfigMapper">
<resultMap id="baseResult" type="*.model.Config">
<result column="CONFIG_ID" jdbcType="VARCHAR" property="configId"/>
<result column="CONFIG_NAME" jdbcType="VARCHAR" property="configName"/>
<result column="CONFIG_CONTENT" jdbcType="VARCHAR" property="configContent"/>
<result column="CREATED_DATE" jdbcType="VARCHAR" property="createdDate"/>
<result column="UPDATED_DATE" jdbcType="VARCHAR" property="updatedDate"/>
</resultMap>
<resultMap id="baseResult2" type="*.model.Config">
</resultMap>
<!--方式1<select id="getAllConfigs" resultMap="baseResult2"-->
<!--方式3<select id="getAllConfigs" resultMap="baseResult3"-->
<!--方式2--><select id="getAllConfigs" resultType="*.model.Config">
select *
from T_CONFIG
</select>
</mapper>
ConfigMapper接口定义如下:
@Repository
public interface ConfigMapper extends BaseMapper<Config> {
/**
*
* @return
*/
List<Config> getAllConfigs();
}
可能有人会问方式1和方式2 为啥可以,因为数据的里的字段是下划线形式的命名,而模型中定义的字段是驼峰命名,这是因为mybatis-plus 自动为我们做的转化,但是这个转换是可配置的,如下红色字体表示开启转换
mybatis-plus:
configuration:
#配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
map-underscore-to-camel-case: true
cache-enabled: false
3.自定义查询方法中添加添加分页
(1).*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="*.dao.ConfigMapper">
<resultMap id="baseResult" type="*.model.Config">
<result column="CONFIG_ID" jdbcType="VARCHAR" property="configId"/>
<result column="CONFIG_NAME" jdbcType="VARCHAR" property="configName"/>
<result column="CONFIG_CONTENT" jdbcType="VARCHAR" property="configContent"/>
<result column="CREATED_DATE" jdbcType="VARCHAR" property="createdDate"/>
<result column="UPDATED_DATE" jdbcType="VARCHAR" property="updatedDate"/>
</resultMap>
<!--<select id="getAllConfigs" resultMap="baseResult2"-->
<select id="getAllConfigs" resultType="*.common.model.Config">
select *
from T_CONFIG
</select>
</mapper>
(2).*Mapper 接口:
/**
* <p>
* Mapper 接口
* </p>
*
* @since 2018-11-16
*/
@Repository
public interface ConfigMapper extends BaseMapper<Config> {
/**
*
* @return
*/
List<Config> getAllConfigs(Page<Config> page);
}
(3). 服务接口:
/**
* @author qiminhui001
*/
public interface IConfigService extends IService<Config> {
/**
*
* @return
*/
Page<Config> getAllConfigs();
}
(4)服务接口实现类:
/**
* @author qiminhui001
*/
@Service
public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> implements IConfigService {
@Autowired
private ConfigMapper configMapper;
@Override
public Page<Config> getAllConfigs() {
Page<Config> page = new Page<Config>();
page.setCurrent(1);
page.setSize(2);
List<Config> configs = configMapper.getAllConfigs(page);
page.setRecords(configs);
return page;
}
}
(5)控制器
/**
* @author qiminhui001
*/
@RestController
public class TestController {
@Autowired
ConfigMapper configMapper;
@Autowired
IConfigService configService;
@GetMapping("/getAllConfigs")
public Page<Config> getAllConfigs(){
Page<Config> page = configService.getAllConfigs();
return page;
}
}
(7) 返回结果:
{
"current": 1,
"pages": 3,
"records": [
{
"configContent": "11",
"configId": "cf76ebbfc54d4b2585883b43cc740eca",
"configName": "22",
"createdDate": "2019-07-13 19:12:06",
"updatedDate": "2019-07-13 19:12:06"
},
{
"configContent": "22",
"configId": "7d1c6acf0f1f405ebc80876bfc36b2f9",
"configName": "33",
"createdDate": "2019-07-16 11:38:41",
"updatedDate": "2019-07-16 11:38:41"
}
],
"size": 2,
"total": 6
}