mybatis 逆向工程 自动生成的mapper文件没有 主键方法(附解决方法)

总结了一下网上的三大原因

1.数据表没有设置主键

    设置个主键就好

2.在mybits配置文档里设置了某些属性值为false

   在mybatis配置文档里查看

   enableSelectByPrimaryKey="true"

  enableUpdateByPrimaryKey="true"

  enableDeleteByPrimaryKey="true"

这些属性是否设置为false,如果设置了这些属性,改为true即可,如果没有设置这些属性,其默认值就是true,那就不用管它了

3。mysql-connector-java 驱动版本用的是6.x的

据说用mysql5.x版本的才能生成主键方法,用了6.x的就不行了,但问题是

5.x版本的驱动路径是:com.mysql.jdbc.Driver

6.x的驱动路径是:com.mysql.cj.jdbc.Driver

自己打开jar包找下Driver就知道了。

我的电脑本地上装的是mysql server 5.5,其driver路径是com.mysql.cj.jdbc.Driver,我不太清楚mysql server 与mysql-connector-java版本的对应关系

懒得改本地的sql版本,所以就只能用mysql-connector-java 6.x的版本了,

那 主键方法怎么办呢?

自己动手,丰衣足食啊!

我以 添加 按主键删除 为例

1.自己手动先在xxxMapper.java中写入其方法名,参数为 主键的名字

package cn.ssm.dao;

import cn.ssm.bean.User;
import cn.ssm.bean.UserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);
    
    //按主键删除。
    int deleteByPrimaryKey(Integer uId);

    int insert(User record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);
}

2.然后打开xxxMapper.xml

	<delete id="deleteByExample"
		parameterType="cn.ssm.bean.UserExample">
		delete from users
		<if test="_parameter != null">
			<include refid="Example_Where_Clause" />
		</if>
	</delete>

<!-- 以下为 所加 代码-->
	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
		delete from users
		where u_id = #{uId,jdbcType=INTEGER}
	</delete>

id 为方法名,parameterType为主键的属性,(我的主键为int类型的)

在<delete></delete>标签中 填入正确的sql语句

delete from users where u_id = #{uId,jdbcType=INTEGER}

{} 里面,第一个值为主键名字,jdbcTYPE为主键属性

3.测试 deleteByPrimaryKey 方法

	@Autowired
	UserMapper um;

    /*
	 * 根据主键 删除信息
	 */
	@Test
	public void testDelete() {
		um.deleteByPrimaryKey(1006);
	}

我的到此为止就成功了,看你的了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值