发表于: 2017-10-14 22:57:50
6 768
今天学习的内容:
用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 testDelete(){
SqlSession sqlSession = MyBatisUtil.getSqlSession(true);
/**
* 映射sql的标识字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* deleteUser是delete标签的id属性值,通过delete标签的id属性值就可以找到要执行的SQL
*/
String statement = "me.gacl.mapping.userMapper.deleteUser";//映射sql的标识字符串
//执行删除操作
int retResult = sqlSession.delete(statement,5);
//使用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);
}
}
删除执行之前的表格:
删除代码执行之后的结果:
百度了一下关于Mybatis的介绍:
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
Mybaits的执行流程:
原理详解:
MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。
问题:在学习Mybatis对数据库的操作的时候,发现有些地方不是很懂,SqlSession不太明白。
明天继续学习关于Mybatis的内容。
评论