目录
客户端操作数据库的时候,(增删改查)无作用,可能是mybatis的错误,仔细查看这些方面,可能会有发现
可能原因:
Mybatis错误:
1、有多个Mybatis文件,如多个UserDao.xml。系统不知道运行哪个
解决方法:
Ctrl+点击调用的方法(自动回到所用接口的方法),再Ctrl点击接口方法,回到相应Mybatis的xml
方法演示:
可以看到,我这里有之前没有更新的xml文件,原因是用mybatis-generator工具创建过一次,没有删干净。因此,把另一个删掉。
启动类扫描包错误
解决方法:
在启动类上配置放置实体类接口的包,DAO包,使用@MapperScan(“dao包名”);
MyBatis配置错误
application.yml正确的Springboot项目中Mybatis应该是:
mybatis:
configuration:
map-underscore-to-camel-case: true #数据库表中的下划线自动那个转换成驼峰映射。
mapper-locations: classpath:mybatis/mapper/**/*.xml #mapper文件的路径,这个路径下面的mapper.xml会被自动加载成mybatis的映射文件
MyBatis代码错误
正确的Mybatis的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.mojingyi.market.dao.GoodsDao">
<resultMap id="BaseResultMap" type="com.mojingyi.market.pojo.entity.Goods">
<id column="goods_id" jdbcType="INTEGER" property="goodsId" />
<result column="title" jdbcType="VARCHAR" property="title" />
<result column="img" jdbcType="VARCHAR" property="img" />
<result column="good_type_id" jdbcType="INTEGER" property="goodTypeId" />
<result column="orginal_price" jdbcType="DOUBLE" property="orginalPrice" />
<result column="price" jdbcType="DOUBLE" property="price" />
<result column="on_sale" jdbcType="VARCHAR" property="onSale" />
<result column="detail" jdbcType="VARCHAR" property="detail" />
<result column="count" jdbcType="INTEGER" property="count" />
<result column="merchant_name" jdbcType="VARCHAR" property="merchantName" />
<result column="evaluation_count" jdbcType="INTEGER" property="evaluationCount" />
</resultMap>
<sql id="Base_Column_List">/*这个等于将数据库的数据封装,起个别名,用于整个xml引入数据库数据*/
goods_id, title, img, good_type_id, orginal_price, price, on_sale, detail, `count`,
merchant_name, evaluation_count
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">/*此处的id与其他地方的需要一致,如果mybatis不起作用可能是名字不同*/
select
<include refid="Base_Column_List" />
from goods
where goods_id = #{goodsId,jdbcType=INTEGER}
</select>
</mapper>
数据库错误
报错信息:
如果后台会报这个错误,客户端就无法操作到数据库,看起来就是mybatisdao.xml没有作用。
java.sql.SQLException: Incorrect string value: ‘\xE8\xA5\xBF\xE8\xA5\xBF’ for column ‘merchant_name’ at row 1
错误原因:
1、数据库中的数据类型与实体类中的数据类型,或与mybatisDao.xml中的数据类型不一致
<resultMap id="BaseResultMap" type="com.mojingyi.market.pojo.entity.Goods">
<id column="goods_id" jdbcType="INTEGER" property="goodsId" />/*jdbctype与数据库中的不一致*/
2、客户端输入的数据类型与数据库定义的数据类型不一致。此时注意输入。
3、数据库建立的时候的编码方式设置不是UTF-8,这时如果输入中文,后台也会报错。
解决方法:
修改数据库编码方式
alter table goods default character set utf8;
已经建好的数据库如果这样不起作用,就修改报错参数编码
alter table goods change merchant_name merchant_name varchar(255) character set utf8;
今天的文章使用Mybatis查询插入数据(insertSelect)无作用分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/33026.html