利用deal软件编写代码mybatis的执行顺序(或者叫mybatis工作流程、生命周期)2021-04-13

利用deal软件编写代码

mybatis

mybatis的执行顺序(或者叫mybatis工作流程、生命周期)

  1. 首先加载mybatis-config.xml总配置文件,根据development的参数配置连接数据库;查询mappers映射关系,找到mapper.xml配置文件。
  2. 执行mapper.xml文件,该文件记录了运行SQL;准备id的名字等待被调用。
  3. TestMain生成SqlSessionFactory工厂对象。
  4. 由工厂对象生成SqlSession,然后打开连接数据库连接通道。
  5. 对应调用mapper.xml文件中的id,执行mapper.xml中SQL语句。
  6. 关闭SqlSession
    创建总配置文件mybatis-3-config.xml(默认)
    下面展示一些总配置文件
// An highlighted block
var foo = 'bar';
<!-- 配置数据库连接信息-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
                <property name="username" value="scott"/>
                <property name="password" value="tiger"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 配置mapper文件的路径-->
    <mappers>
        <mapper resource="com/rj/dao/StudentMapper.xml"/>
        <mapper resource="com/rj/dao/ClassOneMapper.xml"/>
        <mapper resource="com/rj/dao/Student192Mapper.xml"/>
    </mappers>

根据表创建实体类实体类中的数据与表中数据一一对应
一个实体类对应一个mapper文件
创建mapper文件
下面展示mapper文件中的代码

// An highlighted block
var foo = 'bar';
<!-- namespace="dao层类路径" 没有dao层时?,直接在测试类中测试-->
<mapper namespace="?">
    <!--启用缓存 -->
    <cache></cache>
    <!-- namespace="dao层类路径" type="实体类类路径"-->
    <resultMap id="BaseResultMap2" type="com.rj.entity.Subject">
        <id column="sub_id" property="subId"></id>
        <result column="sub_name" property="subName"></result>
        <result column="stu_id" property="stuId"></result>
    </resultMap>
    <!-- 都是返回类型resultMap="resultMap的id" resultType="实体类类路径"-->
<select id="selectSubject" resultMap="BaseResultMap2">
select * from subject
</select>
</mapper>

测试类testmain

// An highlighted block
var foo = 'bar';
 //mybatis3.0 加载(读取)总配置文件
        String resouce="mybatis-config.xml";  //代表总配置文件的路径
        InputStream is = Resources.getResourceAsStream(resouce);
        /* 获取SqlSessionFactory对象 */
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //通过SqlSessionFactory打开SqlSession,是数据库之间的会话,通过session连接数据库,session类似jdbc的connection数据库连接
        SqlSession session = factory.openSession();
        //SqlSession内置多个操作数据库的API方法,参数通过字符串 获取mapper文件中的id,进而获取的sql语句发送给数据库
        List<Student> list= session.selectList("selectList");
        //打印输出
        System.out.println(list);
        //关闭session
        session.close();

在创建这几个文件之前还应该把jar包导入
最基础的时mybatisjarbaoojdbc时链接数据库的jar包
最基础的是mybatisjarb包ojdbc时链接数据库的jar包log4j时添加日志信息的jar包

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值