发表于: 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的内容。




返回列表 返回列表
评论

    分享到