1、SqlSession的获取
public class DBAccess {
private static SqlSessionFactory factory;
static{//在静态代码块下,factory只会被创建一次
try {
InputStream input = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(input);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SqlSession createSqlSession(){
return factory.openSession(false);//true 为自动提交,false 为不自动提交,默认是没有参数的,不会自动提交
}
public static void closeSqlSession(SqlSession sqlSession){
if(sqlSession != null){//关闭sqlSession
sqlSession.close();
}
}
}
2、mybatis-config.xml 系统核心配置文件(注意元素节点的顺序)
configuration 配置
properties 可以配置在Java 属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
①配置properties元素的两种方式
Ⅰ.通过外部指定的方式(database.properties),实现动态配置
即配置properties的resource属性 ,如下:
<properties resource="database.properties"/>
Ⅱ.直接配置为xml,实现动态配置
配置property的name和value
<properties>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
</properties>
若两种方式同时都用了,resource属性值的优先级高于property子节点配置的值
3、typeAliases元素:
4、environments元素:
5、dataSource元素
6、mappers元素
7、SQL映射的XML文件
MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单
SQL映射文件的几个顶级元素(按照定义的顺序)
mapper - namespace
cache - 配置给定命名空间的缓存
cache-ref – 从其他命名空间引用缓存配置
resultMap –用来描述数据库结果集和对象的对应关系
sql – 可以重用的SQL块,也可以被其他语句引用
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语句
超过3个以上的参数最好封装成对象入参
参数固定的业务方法,最好使用多参数入参