Mybatis XML改查操作(结合上文)
2023-12-13 03:46:01
"改"操作
先在UserInfoXMLMapper.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="com.example.mybatisdemo.mapper.UserInfoXMLMapper">
<update id="update">
update userinfo
set phone = #{phone}
where id = #{id}
</update>
</mapper>
然后在 接口 UserInfoXMLMapper 中?:
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface UserInfoXMLMapper {
Integer update(UserInfo userInfo);
}
然后右键,Generate,test,勾选update,ok
?然后完善代码,把Id为7的人的phone改为66666
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowired
private UserInfoXMLMapper userInfoXMLMapper;
@Test
void update() {
UserInfo userInfo = new UserInfo();
userInfo.setPhone("66666");
userInfo.setId(7);
userInfoXMLMapper.update(userInfo);
}
}
?
?
?
"查"操作(企业开发中尽量不使用*,需要哪些字段就写哪些字段,都需要就全写上)
Mybatis 会自动地根据数据库的字段名和Java对象的属性名进行映射,如果名称一样就进行赋值
但是那些名称不一样的,我们想要拿到,该怎么拿呢?
一开始数据库字段名和Java对象属性名如下图所示,名称不一样
所以当我们查询内容的时候,就会发现这三个字段没有成功映射
通常情况下数据库字段名为蛇形命名(delete_flag)和Java属性名称为驼峰命名(deleteFlag),所以我们如果能够自动转换,那就能成功查询了
所以这里推荐一个办法可以自动转驼峰,就是在 application.yml 里面配置 :
mybatis:
configuration:
map-underscore-to-camel-case: true #配置驼峰?动转换
就像这样 :
这样这三个数据就能成功找到了
还有一种方式是 : 定义Result
在 UserInfoXMLMapper.xml 里面
resultMap 里面的 id 自己取名,里面?type 就是 : 你要映射的Java对象的类所在的packet+对象名
<?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="com.example.mybatisdemo.mapper.UserInfoXMLMapper">
<resultMap id="XMLResultMap" type="com.example.mybatisdemo.model.UserInfo">
<id column="id" property="id"></id> //主键,这一行可以不写
<result column="delete_flag" property="deleteFlag"></result>
<result column="create_time" property="createTime"></result>
<result column="update_time" property="updateTime"></result>
</resultMap>
<select id="selectAll2" resultMap="XMLResultMap">
select * from userinfo
</select>
</mapper>
然后在 UserInfoXMLMapper接口中 :
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface UserInfoXMLMapper {
List<UserInfo> selectAll2();
}
右键,Generate,test,勾选selectAll2,ok
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowired
private UserInfoXMLMapper userInfoXMLMapper;
@Test
void selectAll2() {
List<UserInfo> userInfos = userInfoXMLMapper.selectAll2();
log.info(userInfos.toString());
}
}
成功!?
文章来源:https://blog.csdn.net/qq_40841463/article/details/134862439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!