发表于: 2017-10-13 23:27:47

4 652


今天学习的内容:

用Mybatis实现了对数据库表的增加,修改

定义sql映射xml文件:

在userMapper.xml中添加如图所示的代码:

单元测试类代码如下:

package me.gacl.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import me.gacl.domain.User;

import me.gacl.util.MyBatisUtil;

public class TestCRUDByXmlMapper {

@Test

    public void testAdd(){

 //SqlSession sqlSession = MyBatisUtil.getSqlSession(false);

        SqlSession sqlSession = MyBatisUtil.getSqlSession(true);

         /**

          * 映射sql的标识字符串,

          * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,

          * addUser是insert标签的id属性值,通过insert标签的id属性值就可以找到要执行的SQL

          */

         String statement = "me.gacl.mapping.userMapper.addUser";//映射sql的标识字符串

         User user = new User();

         user.setName("诸葛亮");

         user.setAge(20);

         //执行插入操作

         int retResult = sqlSession.insert(statement,user);

         //手动提交事务

         //sqlSession.commit();

         //使用SqlSession执行完SQL之后需要关闭SqlSession

         sqlSession.close();

         System.out.println(retResult);

     }

@Test

     public void testUpdate(){

         SqlSession sqlSession = MyBatisUtil.getSqlSession(true);

         /**

          * 映射sql的标识字符串,

          * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,

          * updateUser是update标签的id属性值,通过update标签的id属性值就可以找到要执行的SQL

          */

         String statement = "me.gacl.mapping.userMapper.updateUser";//映射sql的标识字符串

         User user = new User();

         user.setId(7);

         user.setName("小乔");

         user.setAge(25);

         //执行修改操作

         int retResult = sqlSession.update(statement,user);

         //使用SqlSession执行完SQL之后需要关闭SqlSession

         sqlSession.close();

         System.out.println(retResult);

     }

}

用到的MyBatisUtil工具类代码如下:

package me.gacl.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);

}

}

增加执行的结果:




返回列表 返回列表
评论

    分享到