本文共 4080 字,大约阅读时间需要 13 分钟。
UTF-8 1.8 1.8 org.mybatis mybatis 3.5.6 mysql mysql-connector-java 5.1.27 junit junit 4.13.2 test src/main/java **/*.properties **/*.xml false
如果不配置资源插件,后面xml文件是找不到的:
public class Student { private Integer id; private String name; private String email; private Integer age;}
public interface StudentDao { Student selectStudentById(Integer id);}
mybatis官方文档:
1.定义创建连接实例的数据源(DataSource)对象
2.指定其他mapper文件的位置
public class MyTest { @Test public void testSelectById() throws IOException { //调用mybatis某个对象的方法,执行mapper文件中的sql语句 //mybatis核心类: SqlSessionFactory //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径 String config="mybatis.xml"; //2.读取主配置文件。使用mybatis框架中的Resources类 InputStream inputStream = Resources.getResourceAsStream(config); //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); //4.获取SqlSession对象。 SqlSession session = factory.openSession(); //5.指定要执行的sql语句的 id // sql的id = namespace+"."+ select|update|insert|delete标签的id属性值 String sqlId = "com.macay.dao.StudentDao"+"."+"selectStudentById"; // 6.通过SqlSession的方法,执行sql语句 Student student = session.selectOne(sqlId); System.out.println("使用mybatis查询一个学生:"+student); // 7.关闭SqlSession对象 session.close(); }}
结果如下:
(1)、 Resources : mybatis框架中的对象, 一个作用读取 主配置信息。
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
(2)、SqlSessionFactoryBuilder:负责创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
(3)、SqlSessionFactory: 重要对象
SqlSessionFactory是重量级对象:创建此对象需要使用更多的资源和时间。 在项目中有一个就可以了。
DefaultSqlSessionFactory实现类public class DefaultSqlSessionFactory implements SqlSessionFactory { }
SqlSessionFactory接口:作用是SqlSession的工厂, 就是创建SqlSession对象。
SqlSessionFactory接口中的方法
openSession(): 获取一个默认的SqlSession对象, 默认是需要手工提交事务的。
openSession(boolean): boolean参数表示是否自动提交事务。 true: 创建一个自动提交事务的SqlSession false: 等同于没有参数的openSession(4)、SqlSession对象
SqlSession对象是通过SqlSessionFactory获取的。 SqlSession本身是接口
DefaultSqlSession: 实现类public class DefaultSqlSession implements SqlSession { }
SqlSession作用是提供了大量的执行sql语句的方法:
selectOne:执行sql语句,最多得到一行记录,多余1行是错误。
selectList:执行sql语句,返回多行数据 selectMap:执行sql语句的,得到一个Map结果 insert:执行insert语句 update:执行update语句 delete:执行delete语句 commit:提交事务 rollback:回顾事务
注意SqlSession对象不是线程安全的, 使用的步骤:
①:在方法的内部,执行sql语句之前,先获取SqlSession对象
②:调用SqlSession的方法,执行sql语句
③:关闭SqlSession对象,执行SqlSession.close()
转载地址:http://wjbe.baihongyu.com/