Mybatis小结(优化)

来源:互联网 发布:二战意大利知乎 编辑:程序博客网 时间:2024/05/29 18:24

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 blocke.printStackTrace();}}public static SqlSession createSqlSession(){return factory.openSession(false);//true 为自动提交,false 为不自动提交,默认是没有参数的,不会自动提交}public static void closeSqlSession(SqlSession sqlSession){if(sqlSession != null){//关闭sqlSessionsqlSession.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个以上的参数最好封装成对象入参
参数固定的业务方法,最好使用多参数入参