一开始用直接传参数的方法写的插入操作
StudentMapper.java接口
Integer insertStudent(@Param("sname") String name,@Param("sage") int age);
然后在网上搜了返回主键的方法
StudentMapper.xml:
<insert id="insertStudent" useGeneratedKeys="true" keyProperty="id" >
insert into t_student values(null,#{name},#{age});
</insert>
发现这样不行,他说找不到主键id可以传。
于是主函数改成传Student对象,这样:
Student me = new Student(null,"李四",25);
mapper.insertStudent(me);
int newId = me.getId();
System.out.println("插入id:"+newId+"成功");
List<Student> list = mapper.findAllStudent();
list.forEach(student -> System.out.println(student));
mapper接口:
Integer insertStudent(@Param("student") Student student);
mapper文件改成这样:
<insert id="insertStudent" useGeneratedKeys="true" keyProperty="student.id" >
insert into t_student(sname, sage) values(#{student.name},#{student.age});
</insert>
用student.xxx,左侧的sname,sage和数据库的属性一样,右侧student.name,student.age是和类的属性一样。
测试一下,终于成了。。
欢迎交流。