import com.wei.Mapper.UserMapper;
代码语言:javascript复制 import com.wei.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class MyTest {
@Test
public void test(){
//解析beans.xml文件,生成管理相应的Bean对象,创建 Spring 的 IOC 容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicicationContext.xml");
//getBean:参数即为Spring配置文件中的bean的id
//从IOC容器中获取 bean 的实例
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
List userList = userMapper.selectUser();
for (User user : userList) {
System.out.println(user);
}
}
}
总结
配置事务原因:
是的核心对象,用于初始化,读取配置文件,创建对象delphi 数据库连接池,是全局对象,为保证其在应用中全局唯一delphi 数据库连接池,要使用static进行初始化
是操作数据库的核心对象,使用JDBC方式与数据库交互,同时提供了数据表的CRUD(增删改查)对应的api方法
导入jar包
格式:
代码语言:javascript复制 org.mybatis
mybatis
x.x.x
代码语言:javascript复制 org.mybatis
mybatis
3.5.2
XML 中构建
String resource = "org/mybatis/example/mybatis-config.xml";
代码语言:javascript复制 InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
获得 的实例
既然有了 ,顾名思义,我们可以从中获得 的实例。 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 实例来直接执行已映射的 SQL 语句
SqlSession sqlSession = sessionFactory.openSession(true);
代码实现
package com.wei.utils;
代码语言:javascript复制 import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
//sqlSessionFactory 构造 sqlSession
public class MybatisUtils {
//提升作用域:定义SqlSessionFactory全局变量
private static SqlSessionFactory sqlSessionFactory;
//静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员
static {
try {
//使用Mybatis第一步:获取sqlSessionFactory对象
//定义核心配置文件
String resource = "mybatis-config.xml";
//通过IO流加载resource的mybatis-config.xml核心配置文件文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过build加载inputStream
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
//SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
//你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true); //此处设置参数为true时,表示开启自动提交事物功能
}
}
▌作用域(Scope)和生命周期
所有代码中都遵循这种使用模式,可以保证所有数据库资源都能被正确地关闭
lder(构造器) (工厂) (会话)
本文共 474 个字数,平均阅读时长 ≈ 2分钟