发表于: 2017-10-17 23:21:03
4 709
今天学习的内容:
用Mybatis实现了对数据库的删除,修改,查询:
在stuMapper.xml中加上如下代码:
<!-- 根据id查询得到一个Student对象 -->
<select id="getStu" parameterType="int"
resultType="com.hpe.po.Student">
select * from Student where id=#{id}
</select>
<!-- 删除学生 -->
<delete id="removeStu" parameterType="int">
delete from Student where id=#{id}
</delete>
<!-- 修改学生信息 -->
<update id="updateStu" parameterType="com.hpe.po.Student">
update Student set name=#{name},grade=#{grade} where id=#{id}
</update>
在测试类中的代码如下:
package com.hpe.test;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.hpe.po.Student;
import com.hpe.util.MyBatisUtil;
public class TestStuMapper {
@Test
public void testDel(){
SqlSession sqlSession = MyBatisUtil.getSqlSession(true);
String statement = "com.hpe.mapping.stuMapper.removeStu";
int resultSet=sqlSession.delete(statement, 6);
sqlSession.close();
if(resultSet!=0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
@Test
public void testUpdate(){
SqlSession sqlSession = MyBatisUtil.getSqlSession(true);
String statement = "com.hpe.mapping.stuMapper.updateStu";
Student stu = new Student();
stu.setId(2);
stu.setGrade("三班");
stu.setName("赵云");
int resultSet = sqlSession.update(statement,stu);
sqlSession.close();
if(resultSet!=0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
}
@Test
public void testQuery(){
SqlSession sqlSesion = MyBatisUtil.getSqlSession();
String statement = "com.hpe.mapping.stuMapper.getStu";
Student stu = new Student();
stu = sqlSesion.selectOne(statement, 3);
sqlSesion.close();
System.out.println("id:"+stu.getId());
System.out.println("名字:"+stu.getName());
System.out.println("年龄:"+stu.getAge());
System.out.println("性别:"+stu.getSex());
System.out.println("班级:"+stu.getGrade());
}
}
工具类的代码:
package com.hpe.util;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
/**
* 获取SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getSqlSessionFactory(){
String resource="conf.xml";
InputStream is=MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
return factory;
}
/**
* 获取SqlSession
* @return SqlSession
*/
public static SqlSession getSqlSession(){
return getSqlSessionFactory().openSession();
}
/**
* 获取SqlSession
* @param isAutoCommit
* true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务
* false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务
* @return SqlSession
*/
public static SqlSession getSqlSession(boolean isAutoCommit){
return getSqlSessionFactory().openSession(isAutoCommit);
}
}
删除之前的:
删除代码执行之后的结果:
修改之前的:
修改代码执行之后的结果:
查询一个学生的信息:
问题:
在执行修改的时候,发现路径不对,原来是
statement中的stuMapper的s写成了大写。
在修改的时候,修改了一下班级,结果数据库中还是原来的班级,发现在update语句中没有写班级这一列。
明天继续学习Mybatis的内容。
评论