MyBatis XML的方式来实现

使用这种方式的时候我们需要在配置文件中配置 mybatis xml 的文件路径:

这里需要注意的是:resources文件夹之下的这个mapper文件夹的名字要和配置文件中classpath后端mapper的名字要保持一致。

同时以上述的配置信息为例,mapper文件夹之下的xml文件一定是要以Mapper为结尾。

在xml文件中编写SQL语句

java 复制代码
@Mapper
public interface UserInfoMapperXML {
        List<UserInfo> selectAll();
}
java 复制代码
<mapper namespace="com.example.mybatis.mapper.UserInfoMapperXML">
    <select id="selectAll" resultType="com.example.mybatis.model.UserInfo">
        select * from user_info;
    </select>
</mapper>

上面的接口的名字和所在的路径要和xml文件中的相对应,接口中声明的方法名也要和xml文件中的id值相对应。

xml文件中的resultType表示这个方法返回的结果中的数据元素是什么类型,本案例就是UserInfo类型。

测试代码

接下来我们生成测试类来运行一下我们的代码:

java 复制代码
 @Test
    void sellectAll() {
        System.out.println(userInfoMapperXML.selectAll());
    }

新增数据

java 复制代码
        Integer insertUser(UserInfo userInfo);
java 复制代码
<insert id="insertUser">
        insert into user_info (username,password,age) VALUES(#{username},#{password},#{age})
    </insert>

XMl传入参数的方式和用注解的方式是一样的:

java 复制代码
 @Test
    void insertUser() {
        UserInfo userInfo=new UserInfo();
        userInfo.setPassword("12345678");
        userInfo.setUsername("user1");
        userInfo.setAge(18);
        userInfoMapperXML.insertUser(userInfo);
    }

我们也可以获取到自增的id

获取自增id

java 复制代码
        Integer insertUser2( @Param("Userinfo") UserInfo userInfo);
java 复制代码
<insert id="insertUser2" useGeneratedKeys="true" keyProperty="id">
        insert into user_info (username,password,age)
        VALUES(#{Userinfo.username},#{Userinfo.password},#{Userinfo.age})
    </insert>
java 复制代码
 @Test
    void insertUser2() {
        UserInfo userInfo=new UserInfo();
        userInfo.setPassword("12345");
        userInfo.setUsername("user3");
        userInfo.setAge(18);
       Integer result=userInfoMapperXML.insertUser2(userInfo);
       System.out.println("影响行数:"+result+",id:"+userInfo.getId());
    }

更新数据

接下来我们把id为12的用户的密码改为123456:

java 复制代码
        Integer updateUser(String newpassword,Integer id);
java 复制代码
 <update id="updateUser">
        update user_info set password=#{newpassword}
        where id=#{id}
    </update>
java 复制代码
 @Test
    void updateUser() {
        userInfoMapperXML.updateUser("123456",12);
    }

删除数据

我们把以id为12的数据删除为例:

java 复制代码
        Integer deleteUser(Integer id);
java 复制代码
 <delete id="deleteUser">
        delete from user_info where id=#{id}
    </delete>
java 复制代码
@Test
    void deleteUser() {
        userInfoMapperXML.deleteUser(12);
    }
相关推荐
evans在进步25 分钟前
LeetCode 17:电话号码的字母组合——Java DFS 回溯法详解
java·leetcode·深度优先
2401_8504811729 分钟前
UVA10391
java
UQR35 分钟前
一、Java基础高频面试题
java·开发语言
AC赳赳老秦36 分钟前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
上海云盾商务经理杨杨42 分钟前
Tomcat 弱配置漏洞渗透实战!批量 getshell 高频漏洞
java·web安全·tomcat
10mAh1 小时前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
深念Y1 小时前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
阿pin1 小时前
Java随笔-红黑树
java·python·算法·红黑树
我命由我123451 小时前
Jetpack Compose - @Preview 注解
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
为美好的生活献上中指1 小时前
Spring AI Advisor 深度实战:构建严谨的 AI Agent 拦截链
java·人工智能·spring·advisor·aiagent