- 在StudentDao接口中新增一个方法
public int insertStudent(Student student);
- 在映射文件StudentMapper.xml中新增一段insert语句
<insert id="insertStudent" parameterType="com.hbfu.emtity.Student">
insert into student(id,studentname,gender,age) values(#{id},#{studentname},#{gender},#{age})
</insert>
解释:parameterType="com.hbfu.entity.Student"也可不加,MyBatis会自动判断传进来的参数类型。
#{sid}是占位符,传进来的值是参数类型Student对应的同名属性值,即Student对象的id属性的值,其他类推。
- 在接口StudentDao的实现类StudentDaoImpl中新增insertStudent方法
@Override
public int insertStudent(Student student) {
SqlSession session = null;
int count= 0;
try {
session = MyBatisUtil.getSession();
count = session.insert("com.hbfu.dao.StudentDao.insertStudent",student);
}catch (Exception e){
e.printStackTrace();
}
return count;
}
解释:这里用到了insert方法,用于添加记录,返回受影响的行数。
- 在测试类StudentTest中添加代码
//插入信息
Student student = new Student();
student.setId(5);
student.setStudentname("小姜");
student.setGender("女");
student.setAge(27);
int count = studentDao.insertStudent(student);
if (count>0){
System.out.println("添加成功!");
}
虽然当前提示添加成功,但查看数据库会发现数据中并没有这条新记录,原因是insert后没有提交事务,所以还要提交事务。使用session.commit()方法可实现事务提交。
- 在接口实现类中添加session.commit()
@Override
public int insertGoods(Goods goods) {
SqlSession session = null;
int count= 0;
try {
session = MyBatisUtil.getSession();
count = session.insert("com.hbfu.dao.StudentDao.insertStudent",student);
session.commit();
}catch (Exception e){
e.printStackTrace();
}
return count;
}
版权声明:本文为weixin_54139442原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。