Mybatis详细的使用过程(2)

       为了简便的去调用接口中的方法,简化生成接口代理对象的过程,即将每次调用时省略如下部分代码

  我们创建一个MyBatisUtil类将上述代码进行集中处理,不用每次调用一个接口中的方法就去调用,直接调用数据库连接池,将生成数据库连接池过程进行集中,下面是示例代码

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;

public class MyBatisUtil {

    static SqlSessionFactory sqlSessionFactory=null;

    static {

        InputStream inputStream= null;
        try {
            inputStream = Resources.getResourceAsStream("mybitsConfig.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }

    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
        //类似一个仓库,仓库里面有很多SqlSession对象,每次都不同,取出的对象
    }
}

然后我们在调用该类进行生成数据库连接池,并通过该类中方法进行调用处理,下面为调用示例

 public void ff1(){    //单个参数查询
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //动态为接口生成一个代理对象,由代理对象去调用方法
        AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
        Admin admin=adminDao.findadminByid(1);
        System.out.println(admin.toString());
        sqlSession .close();
    }

对于使用Mybatis,我们需要进行对于环境的配置,如下为配置文件。

1.在开启数据库连接池功能后,不在需要进行一次使用连接就创建一个连接对象,而是在连接池中 会一开始便创建的有值,在调用时将连接对象分配给需要使用的,且使用完后不需要将其销毁,而是重新将其放回到连接池中。

2.对单个类或者指定包中的类进行别名配置。

3.开启日志功能后,会将执行的sql语句进行步骤的详细的过程打印出来

4.事务只与增删改有关,与查询无关

<?xml version="1.0" encoding="UTF-8" ?>
<!--数据库连接设置文件,导入映射文件-->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--读入属性文件-->
    <properties resource="config.properties"></properties>

    <settings>
<!-- 日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- 从经典的数据库命名,开启驼峰命名转换-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
<!--        <setting name="autoMappingBehavior" value="FULL"/>-->
    </settings>
    
<!--配置类型别名-->
    <typeAliases>
<!-- 单个    <typeAlias type="com.ffyc.mybatisdemo.model.Admin" alias="Admin"></typeAlias>-->
<!-- --> <package name="com.ffyc.mybatisdemo.model"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
           <!-- 使用事务管理的jdbc默认的 事务是一次对数据操作过程的管理,具有原子性 -->
            <dataSource type="POOLED">
            <!--  是否使用数据库连接池功能 当为UNPOOLED不使用-->
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>

<!--        <environment id="work">-->
<!--            <transactionManager type=""/>-->
<!--            <dataSource type="">-->
<!--            </dataSource>-->
<!--        </environment>-->

    </environments>
<!--  添加映射关系的配置文件  -->
    <mappers>
        <mapper resource="mappers/AdminMapper.xml"/>
        <mapper resource="mappers/StudentMapper.xml"/>
        <mapper resource="mappers/GradeMapper.xml"/>
    </mappers>

</configuration>

5.将属性抽取出来构成一个属性文件

 6.添加映射的关系文件,使得可以进行调用

SQLSessionFactory与Session的关系

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值