Mybatis之基础入门

Mybatis的三个基本要素
1.核心对象
SqlSessonFactoryBuilder.build() 获得SqlSessionFactory 对象
    SqlSessonFactoryBuilder的最大特点是其生命周期用过即丢。一旦创建SqlSesionFactory对象,
    这个类不需要存在了,SqlSessionFactoryBuilder的最佳使用范围就是存在于放体内,也就是局部变量

SqlSessionFactory.openSession() 获得SqlSession对象
    SqlSessionFactory一旦创建,就会在整个应用运行过程中存在。没有理由销毁或者再次创建,并且在应用程序中不建议多次创建该对象。
    所以SqlSessionFactory的最佳作用域为Application,也就是随着生命周期一同存在。
SqlSession 给对象可以使用xml映射文件 或者 映射接口来接受执行SQL语句的结果
    SqlSession对应着一次数据库会话,用于数据库会话不是永久的,所以SqlSession对象生命周器不是永久的。
    因此每次访问数据库都需要创建它(需要注意的是这并不意味着SqlSession在生命周期内只能执行一次SQL,它可以执行多次
    注意每条线程都有自己Sqlsession实例,SqlSession不能被共享,也不是线程安全的,由此作用域最好是request或者方法体内
    
    
2.Mybatis的基本配置文件
//配置文件的元素标签有顺序的
configuration
    properties         可以配置在java属性配置文件中
    settings        修改MyBatis在运行时的行为方式
    typeAliases         为Java类型命明一个别名
    typeHandelers      类型处理器
    objectFactory    对象工厂
    plugins         插件
    environments    环境
    environment        环境变量
        transactionManager 事务管理器
        dataSource 数据源
    mappers 映射器


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationg PUBLIC "-//mybatis.org//DTD Config 3.0 //EN "http://mybatis.org/dtd/mybatis-3-confdig.dtd">
<configuration>
    <properties resource="database.properties"/>
    <settings>
        <setting name="logImpl" value="LOG4J"></setting>
    </settings>
    <environments default="development">
        <environment id="development">
            <transactionManager default="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}" />
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
</configuraton>


3.执行SQL语句映射文件

创建xxxMpper.xml文件 我这里是userMapper.xml 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  <mapper namespace="com.nubi.dao.user.UserMapper">
      <select id="count" resultType="int">
          select count(username) as count from user
      </select>
      
      <select id="getUserList" resultType="com.nubi.bean.User">
          select * from user
      </select>
  </mapper>

SqlSessionFactoryBuilder 实例.build() --> SqlSessionFactory -->openSession() -->SqlSession;
//采用单列模式创建    SqlSessionFactory factory
public class MybatisUtil {
    private static SqlSessionFactory factory;
    static{
        try{
            String resource = "mybatis-config.xml ";
            InputStream is = Resources.getResourceAsStream(resource);
            factory = new SqlSessionFactoryBuilder().build(is);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public static SqlSession getSqlsession(){
        return factory.openSession(false);//关闭自动提交事务
    }
    //关闭SqlSession 非常重要的,必须确保SqlSession在finally语句中正常关闭
    public static void closeSqlsession(SqlSession sqlSession){
        if(sqlSession != null){
            sqlSession.close();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值