导航:首页 > APP软件 > mapper配置文件

mapper配置文件

发布时间:2024-10-16 02:13:25

① mybatis报Mapper配置文件出错

最近学习mybatis框架时,遇到一坑,记录一下debug过程。

操作表一对一查询时,运行junit测试类时报错如下:

根据错误提示,第一时间检查了mapper的xml文件名称以及对应的包名是否跟接口类的一致,确认没有问题后,初步判定原因是 mapper映射文件问题 ,mapper内容如下:

随后检查mapper文件中返回类型以及实判升体类属性、数据表对掘尺老应字段,发现应该是由于resultMap定义的返回类型有问题,于是检查mybatis主配困誉置文件

果不其然,调试后明确问题:
由于主配置文件只配置了<mappers>标签下的<package>指定了接口所在包, 没有配置<typeAliases>下的<package>指定实体类的别名,因此mapper文件中返回的实体类名称不能使用简写,需要写完整全限定类名

主配置文件指定实体类别名后测试,测试类正常返回一对一查询的数据

② MyBatis 的mapper.xml配置的问题

我们知道在Mybatis中定义Mapper信息有两种方式,一种是利用xml写一个对应的包含Mapper信息的配置文件;另一种就是定义一个Mapper接口,然后定义一些相应的操作方法,再辅以相应的操作注解。
现假设我有这样一个实体类:
Java代码 收藏代码
package com.tiantian.mybatis.model;

public class User {

private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

它对应的数据库表结构是这样的:

然后我要利用Mybatis对它做一个简单的增删改查操作,那么如果利用xml配置Mapper的方式来定义的话,我对应的UserMapper.xml文件会是这样:
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.tiantian.mybatis.mapper.UserMapper">
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyColumn="id">
insert into t_user(name, age) values(#{name}, #{age})
</insert>

<update id="updateUser" parameterType="User">
update t_user set name=#{name}, age=#{age} where id=#{id}
</update>

<select id="findById" parameterType="int" resultType="User">
select * from t_user where id=#{id}
</select>

<delete id="deleteUser" parameterType="int">
delete from t_user where id=#{id}
</delete>
</mapper>

如果使用接口加注解的方式,那么我们的UserMapper接口应该这样定义:
Java代码 收藏代码
package com.tiantian.mybatis.mapperinterface;

import org.apache.ibatis.annotations.Delete;
import or www.hbbz08.com g.apac he.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.tiantian.mybatis.model.User;

public interface UserMapper {

@Insert("insert into t_user(name, age) values(#{name}, #{age})")
public void insertUser(User user);

@Update("update t_user set name=#{name}, age=#{age} where id=#{id}")
public void updateUser(User user);

@Select("select * from t_user where id=#{id}")
public User findById(int id);

@Delete("delete from t_user where id=#{id}")
public void deleteUser(int id);

}

注意看这里我故意把UserMapper接口的namespace也就是它的包名置为与UserMapper.xml的namespace属性不一样。这主要是为了要更好的讲以下的内容。
接下来要做的就是把Mapper信息注册到Mybatis的配置中,告诉Mybatis我们定义了哪些Mapper信息。这主要是在Mybatis的配置文件中通过mappers元素来进行的。在以前版本的Mybatis中我们在Mybatis的配置文件中需要这样定义Mapper信息资源的位置。
Xml代码 收藏代码
<mappers>
<mapper resource="com/tiantian/mybatis/mapper/UserMapper1.xml"/>
<mapper url="file:///E:/UserMapper.xml"/>
</mappers>

这主要是通过mapper元素的resource和url属性来指定的,resource属性指定的是相对于跟类路径下的资源,url属性指定的是通过URL可以获取到的资源。这有一点不好的地方,当我们使用Mapper接口加注解来定义当前Mapper的操作信息时,我们还需要定义一个与它对应的Mapper.xml文件。如:
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.tiantian.mybatis.mapperinterface.UserMapper">

</mapper>

③ SpringBoot整合MyBatis---一篇就够了

SpringBoot整合MyBatis教程,简明扼要

对于已经熟悉SpringBoot基础的开发者,整合MyBatis将使你的项目在数据操作上更加灵活与高效。

MyBatis是一个强大的半自动ORM框架,相较于Hibernate,它更易于上手且能提供更直接的数据操作控制。

在本教程中,我们将演示如何在SpringBoot项目中整合MyBatis,包括引入相关依赖,配置mapper文件、application文件,以及实现CRUD操作。

如果对于SpringBoot或MyBatis初学者,建议先进行基本了解,再深入阅读本教程。

项目框架中,使用Maven管理依赖,确保引入MyBatis和SpringBoot整合所需的组件。

创建mapper配置文件UserMapper.xml,确保其路径与接口完全一致,实现数据操作的抽象。

在application.properties或application.yml中配置MyBatis相关参数,如数据源信息等,两者选择其一。

实现controller层,处理用户登录、CRUD操作等逻辑,通过控制器与前端进行交互。

前端方面,将index.html文件放置于template文件夹下,用于展示数据或接收用户交互。

测试功能包括登录操作与CRUD(增删改查)功能,确保数据操作的正确性。

使用注意事项包括路径配置、参数配置等细节,确保框架与项目环境的兼容性。

为提高开发效率,推荐使用IDEA插件MyBatisX,能自动在mapper.xml中生成CRUD方法。

MyBatis框架的优势包括简化SQL编写、动态SQL支持、灵活的数据映射等,而缺点可能涉及学习曲线、SQL拼接安全等。

在整合SpringBoot与MyBatis过程中,可能会遇到各种错误,如无参构造方法缺失、时区设置不当、依赖注入冲突等问题。

解决方法包括添加无参构造方法、调整时区配置、使用@Autowired注解并设置正确属性等,以确保框架兼容与功能实现。

通过本教程,希望能帮助开发者快速掌握SpringBoot与MyBatis的整合技巧,提高项目开发效率。

持续学习,每天进步“亿”点点。

阅读全文

与mapper配置文件相关的资料

热点内容
如何防止固态硬盘数据损坏 浏览:882
电脑显示工具栏win10 浏览:796
什么网站可以查汽车票 浏览:498
qq邮箱的好英文名字 浏览:983
win10系统缩放在哪里设置 浏览:438
粉碎流氓软件提示找不到文件夹 浏览:840
微信七万多步怎么走的 浏览:315
会使用数据分析能为公司做什么 浏览:97
ppt加网络视频 浏览:231
office微软侵犯版权文件格式 浏览:180
手机百度老弹出升级 浏览:650
微信认证客服 浏览:600
win7系统宽带自动连接设置教程 浏览:268
csystem删除文件夹 浏览:701
aecs6汉化程序怎么用 浏览:858
linux查找oracle安装路径 浏览:391
除了百度之外还有什么搜索app 浏览:908
win7重装使用旧用户配置文件 浏览:981
word文档删除后打不开文件 浏览:40
提取游戏文件的软件 浏览:175

友情链接