使用Mybatis插入一条数据 ,数据库中出现了两条相同数据

新手上路,请多包涵

工具IDEA 使用Mybatis插入一条数据,数据库中出现相同数据
数据库中查询出的数据

执行的sql语句

执行的代码

log日志

各位大佬帮忙看下,初次学习 ,百度了很多,但是没看到这个问题的解决方案,数据库那边添加唯一约束,可以插入进去没有重复的数据但是IDEA这边报错,读取配置文件,创建SqlSession对象那些放在init()destory()方法中

阅读 11k
4 个回答
新手上路,请多包涵

图片描述

你看看你这个勾勾是不是勾选着呢,取消掉试试

新手上路,请多包涵

sql 就执行一次 数据库中出现两条重复数据 , 求解惑

debug一下吧,或者把更多的代码发出来。我写了一遍,没有遇到你说的问题。
实体代码:

@Data
public class LoginInfo {

  private int id;
  private String loginName;
  private String loginPwd;
}

Dao层代码:

@Repository
public interface LoginInfoDao {
    int insert(LoginInfo loginInfo);
}

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.me.catering.dao.LoginInfoDao">
  <insert id="insert" parameterType="com.me.catering.domain.LoginInfo" useGeneratedKeys="true" keyProperty="id">
    insert into login_info(login_name, login_pwd)
    values (#{loginName}, #{loginPwd})
  </insert>
</mapper>

Test代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class CateringApplicationTests {

  @Autowired
  private LoginInfoDao dao;

  @Test
  public void insert() {
    LoginInfo info = new LoginInfo();
    info.setLoginName("Jone");
    info.setLoginPwd("Jone123");
    int res = dao.insert(info);
    assert res == 1;
    assert info.getId() == 3;
  }

}

数据库数据
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题