Mybatis【配置文件】

MyBatis的配置文件 mybatis-config.xml 文件中的元素节点是有一定顺序的,节点位置必须按以上位置排序,否则会编译错误。主要用于配置数据连接和MyBatis运行时所需的各种特性:包含了影响MyBatis行为甚深的设置(settings)和属性(properties)mybatis-config.xml是Mybatis的全局配置文件,名称可以是任意,但是一般命名都为(mybatis-config) 阅读详情

映射文件

配置文件和映射文件还有挺多的属性我还没有讲的,现在就把它们一一补全

在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理sql语句

Statement的实际位置就等于namespace+StatementId

占位符

在Mybatis中,有两种占位符

主键生成策略

如果我们在Hibernate中,当我们插入数据的时候,我们是可以选择是UUID策略的…

那么在Mybatis是怎么做的呢??

UUID

    <!-- mysql的uuid生成主键 -->    <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">        <selectKey keyProperty="id" order="BEFORE" resultType="string">            select uuid()        </selectKey>        INSERT INTO USER(id,username,birthday,sex,address) VALUES(#{id},#{username},#{birthday},#{sex},#{address})    </insert> 
   <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
       <selectKey keyProperty="id" order="BEFORE" resultType="string">
           select uuid()
       </selectKey>

       INSERT INTO USER(id,username,birthday,sex,address) VALUES(#{id},#{username},#{birthday},#{sex},#{address})
   </insert>

主键返回

如果我们一般插入数据的话,如果我们想要知道刚刚插入的数据的主键是多少,我们可以通过以下的方式来获取

需求:

解决思路:

mysql:

    <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">        <selectKey keyProperty="id" order="AFTER" resultType="int">            select LAST_INSERT_ID()        </selectKey>        INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address})    </insert>
       <selectKey keyProperty="id" order="AFTER" resultType="int">
           select LAST_INSERT_ID()
       </selectKey>
       INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address})
   </insert>

oracle:

实现思路:

    <!-- oracle    在执行insert之前执行select 序列.nextval() from dual取出序列最大值,将值设置到user对象 的id属性     -->    <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">        <selectKey keyProperty="id" order="BEFORE" resultType="int">            select 序列.nextval() from dual        </selectKey>        INSERT INTO USER(id,username,birthday,sex,address) VALUES( 序列.nextval(),#{username},#{birthday},#{sex},#{address})    </insert> 
   <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
       <selectKey keyProperty="id" order="BEFORE" resultType="int">
           select 序列.nextval() from dual
       </selectKey>

       INSERT INTO USER(id,username,birthday,sex,address) VALUES( 序列.nextval(),#{username},#{birthday},#{sex},#{address})
   </insert>

resultMap

有的时候,我们看别的映射文件,可能看不到以下这么一段代码:

    <resultMap id="userListResultMap" type="user" >         <!-- 列名         id_,username_,birthday_         id:要映射结果集的唯 一标识 ,称为主键         column:结果集的列名         property:type指定的哪个属性中          -->          <id column="id_" property="id"/>          <!-- result就是普通列的映射配置 -->          <result column="username_" property="username"/>          <result column="birthday_" property="birthday"/>     </resultMap>
        <!-- 列名
        id_,username_,birthday_
        id:要映射结果集的唯 一标识 ,称为主键
        column:结果集的列名
        property:type指定的哪个属性中
         -->

         <id column="id_" property="id"/>
         <!-- result就是普通列的映射配置 -->
         <result column="username_" property="username"/>
         <result column="birthday_" property="birthday"/>

    </resultMap>

因为,如果我们的数据表的字段和JavaBean的属性名称是相同时,我们就不用上面那段代码了。Mybatis会自动帮我们把返回的结果进行封装成JavaBean

那当我们数据表的字段和JavaBean的属性名称不是相同时,我们就需要使用resultMap,也就是上面那段代码

resultMap和resultType区别

resultType :指定输出结果的类型(pojo、简单类型、hashmap..),将sql查询结果映射为java对象 。

resultMap:将sql查询结果映射为java对象。

使用resultMap

    <resultMap id="userListResultMap" type="user" >         <!-- 列名         id_,username_,birthday_         id:要映射结果集的唯 一标识 ,称为主键         column:结果集的列名         property:type指定的哪个属性中          -->          <id column="id_" property="id"/>          <!-- result就是普通列的映射配置 -->          <result column="username_" property="username"/>          <result column="birthday_" property="birthday"/>     </resultMap>
        <!-- 列名
        id_,username_,birthday_
        id:要映射结果集的唯 一标识 ,称为主键
        column:结果集的列名
        property:type指定的哪个属性中
         -->

         <id column="id_" property="id"/>
         <!-- result就是普通列的映射配置 -->
         <result column="username_" property="username"/>
         <result column="birthday_" property="birthday"/>

    </resultMap>
640?wx_fmt=png
这里写图片描述
640?wx_fmt=png
这里写图片描述

resultType和resultMap用法总结

resultType:

resultMap:


association:

collection:


Collection在前面好像并没有用过,下面就看一下它的用法:

Order与OrderDetails关系

package cn.itcast.mybatis.po;import java.io.Serializable;import java.util.Date;import java.util.List;public class Orders implements Serializable {    private Integer id;    private Integer userId;    private String number;    private Date createtime;    private String note;    //关联用户信息    private User user;    //订单明细    private List<Orderdetail> orderdetails;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public Integer getUserId() {        return userId;    }    public void setUserId(Integer userId) {        this.userId = userId;    }    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number == null ? null : number.trim();    }    public Date getCreatetime() {        return createtime;    }    public void setCreatetime(Date createtime) {        this.createtime = createtime;    }    public String getNote() {        return note;    }    public void setNote(String note) {        this.note = note == null ? null : note.trim();    }    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public List<Orderdetail> getOrderdetails() {        return orderdetails;    }    public void setOrderdetails(List<Orderdetail> orderdetails) {        this.orderdetails = orderdetails;    } }

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class Orders implements Serializable {
   private Integer id;

   private Integer userId;

   private String number;

   private Date createtime;

   private String note;

   //关联用户信息
   private User user;

   //订单明细
   private List<Orderdetail> orderdetails;


   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }

   public Integer getUserId() {
       return userId;
   }

   public void setUserId(Integer userId) {
       this.userId = userId;
   }

   public String getNumber() {
       return number;
   }

   public void setNumber(String number) {
       this.number = number == null ? null : number.trim();
   }

   public Date getCreatetime() {
       return createtime;
   }

   public void setCreatetime(Date createtime) {
       this.createtime = createtime;
   }

   public String getNote() {
       return note;
   }

   public void setNote(String note) {
       this.note = note == null ? null : note.trim();
   }

   public User getUser() {
       return user;
   }

   public void setUser(User user) {
       this.user = user;
   }

   public List<Orderdetail> getOrderdetails() {
       return orderdetails;
   }

   public void setOrderdetails(List<Orderdetail> orderdetails) {
       this.orderdetails = orderdetails;
   }

}

SQL语句

     <!-- 一对多查询使用reusltMap完成    查询订单关联查询订单明细     -->     <select id="findOrderAndOrderDetails" resultMap="orderAndOrderDetails" >            SELECT       orders.*,      user.username,      user.sex ,      orderdetail.id orderdetail_id,      orderdetail.items_num,      orderdetail.items_id    FROM      orders,      USER,      orderdetail    WHERE orders.user_id = user.id  AND orders.id = orderdetail.orders_id     </select>
    <select id="findOrderAndOrderDetails" resultMap="orderAndOrderDetails" >
           SELECT
     orders.*,
     user.username,
     user.sex ,
     orderdetail.id orderdetail_id,
     orderdetail.items_num,
     orderdetail.items_id
   FROM
     orders,
     USER,
     orderdetail
   WHERE orders.user_id = user.id  AND orders.id = orderdetail.orders_id
    </select>

resultMap

    <!-- 一对多,查询订单及订单明细 -->    <resultMap type="orders" id="orderAndOrderDetails" extends="ordersUserResultMap">        <!-- 映射订单信息,和用户信息,这里使用继承ordersUserResultMap -->        <!-- 映射订单明细信息         property:要将关联信息映射到orders的哪个属性中        ofType:集合中pojo的类型        -->        <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail">            <!-- id:关联信息订单明细的唯 一标识            property:Orderdetail的属性名              -->            <id column="orderdetail_id" property="id"/>            <result column="items_num" property="itemsNum"/>            <result column="items_id" property="itemsId"/>        </collection>    </resultMap>
   <resultMap type="orders" id="orderAndOrderDetails" extends="ordersUserResultMap">
       <!-- 映射订单信息,和用户信息,这里使用继承ordersUserResultMap -->

       <!-- 映射订单明细信息
       property:要将关联信息映射到orders的哪个属性中
       ofType:集合中pojo的类型
       -->

       <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail">
           <!-- id:关联信息订单明细的唯 一标识
           property:Orderdetail的属性名
             -->

           <id column="orderdetail_id" property="id"/>
           <result column="items_num" property="itemsNum"/>
           <result column="items_id" property="itemsId"/>
       </collection>

   </resultMap>

一般地使用resultMap会多一点。


Mybatis映射文件处理特殊字符

第一种方法:

第二种方法:

配置文件

别名

typeAliases别名:

640?wx_fmt=png
这里写图片描述

自定义别名:

    <!-- 定义 别名 -->    <typeAliases>        <!--        单个别名的定义        alias:别名,type:别名映射的类型  -->        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->        <!-- 批量别名定义        指定包路径,自动扫描包下边的pojo,定义别名,别名默认为类名(首字母小写或大写)         -->        <package name="cn.itcast.mybatis.po"/>    </typeAliases>
   <typeAliases>
       <!--
       单个别名的定义
       alias:别名,type:别名映射的类型  -->

       <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->
       <!-- 批量别名定义
       指定包路径,自动扫描包下边的pojo,定义别名,别名默认为类名(首字母小写或大写)
        -->

       <package name="cn.itcast.mybatis.po"/>

   </typeAliases>

Mapper加载

    <mappers>        <!-- 通过resource引用mapper的映射文件 -->        <mapper resource="sqlmap/User.xml" />        <!-- <mapper resource="mapper/UserMapper.xml" /> -->        <!-- 通过class引用mapper接口         class:配置mapper接口全限定名        要求:需要mapper.xml和mapper.java同名并且在一个目录 中        -->        <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->        <!-- 批量mapper配置         通过package进行自动扫描包下边的mapper接口,        要求:需要mapper.xml和mapper.java同名并且在一个目录 中        -->        <package name="cn.itcast.mybatis.mapper"/>    </mappers>
       <!-- 通过resource引用mapper的映射文件 -->
       <mapper resource="sqlmap/User.xml" />
       <!-- <mapper resource="mapper/UserMapper.xml" /> -->
       <!-- 通过class引用mapper接口
       class:配置mapper接口全限定名
       要求:需要mapper.xml和mapper.java同名并且在一个目录 中
       -->

       <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->
       <!-- 批量mapper配置
       通过package进行自动扫描包下边的mapper接口,
       要求:需要mapper.xml和mapper.java同名并且在一个目录 中

       -->

       <package name="cn.itcast.mybatis.mapper"/>
   </mappers>

延迟加载

在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。

如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询,当需要关联信息再查询这个叫延迟加载。

在Mybatis中延迟加载就是在resultMap中配置具体的延迟加载..

640?wx_fmt=png
这里写图片描述

在Mybatis的文件中配置全局延迟加载

    <!-- 全局配置参数 -->    <settings>        <!-- 延迟加载总开关 -->        <setting name="lazyLoadingEnabled" value="true" />          <!-- 设置按需加载 -->        <setting name="aggressiveLazyLoading" value="false" />    </settings>
   <settings>
       <!-- 延迟加载总开关 -->
       <setting name="lazyLoadingEnabled" value="true" />  
       <!-- 设置按需加载 -->
       <setting name="aggressiveLazyLoading" value="false" />
   </settings>

延迟加载测试

当需要用户时调用 Orders类中的getUser()方法执行延迟加载 ,向数据库发出sql。

由于是对User进行延迟加载,那么我们只要查询Orders相关的信息即可了

     <!-- 一对一查询延迟加载     开始只查询订单,对用户信息进行延迟加载       -->     <select id="findOrderUserListLazyLoading" resultMap="orderCustomLazyLoading">         SELECT           orders.*        FROM          orders     </select>
    <select id="findOrderUserListLazyLoading" resultMap="orderCustomLazyLoading">
        SELECT
         orders.*
       FROM
         orders
    </select>

使用resultMap来配置延迟加载

    <!-- 一对一查询延迟加载 的配置 -->    <resultMap type="orders" id="orderCustomLazyLoading">        <!-- 完成了订单信息的映射配置 -->        <!-- id:订单关联用户查询的唯 一 标识 -->        <id column="id" property="id" />        <result column="user_id" property="userId" />        <result column="number" property="number" />        <result column="createtime" property="createtime" />        <result column="note" property="note" />        <!--        配置用户信息的延迟加载            select:延迟加载执行的sql所在的statement的id,如果不在同一个namespace需要加namespace            sql:根据用户id查询用户信息【column就是参数】            column:关联查询的列            property:将关联查询的用户信息设置到Orders的哪个属性 -->        <!--当需要user数据的时候,它就会把column所指定的user_id传递过去给cn.itcast.mybatis.mapper.UserMapper.findUserById作为参数来查询数据-->        <association property="user"            select="cn.itcast.mybatis.mapper.UserMapper.findUserById" column="user_id"></association>    </resultMap>
   <resultMap type="orders" id="orderCustomLazyLoading">
       <!-- 完成了订单信息的映射配置 -->
       <!-- id:订单关联用户查询的唯 一 标识 -->
       <id column="id" property="id" />
       <result column="user_id" property="userId" />
       <result column="number" property="number" />
       <result column="createtime" property="createtime" />
       <result column="note" property="note" />
       <!--

       配置用户信息的延迟加载
           select:延迟加载执行的sql所在的statement的id,如果不在同一个namespace需要加namespace
           sql:根据用户id查询用户信息【column就是参数】
           column:关联查询的列
           property:将关联查询的用户信息设置到Orders的哪个属性 -->



       <!--当需要user数据的时候,它就会把column所指定的user_id传递过去给cn.itcast.mybatis.mapper.UserMapper.findUserById作为参数来查询数据-->
       <association property="user"
           select="cn.itcast.mybatis.mapper.UserMapper.findUserById" column="user_id">
</association>

   </resultMap>
640?wx_fmt=png
这里写图片描述

总结

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y


MyBatis:配置文件 MyBatis配置文件介绍 阅读详情

相关推荐

通过配置文件ini配置数据库,操作数据库,以mysql为示例

#1. ini 配置文件  config.ini [database] dservername = 127.0.0.1 userid = root dpwd = 123456 database = MMember [link] url = www.baidu.com version = 2017.06.01.10.10 e-mail = 192495360@qq.com

淑礼一行的博客 1632

UDS(三)网络层时间参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数。 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.comfirm指示 2.当N_Ar超时时,即接收方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.co

weixin_44522306的博客 1万+

MyBatis的配置文件详解

01-MyBatis的配置文件详解 创建的接口和xml文件的名字最好写一样的要不然会出问题,然后和接口名相同的xml文件在resources下创建个和接口相同文件夹把xml文件放进去,而且resources下的创建的文件夹需要一级一级的创键,比如:cn创建完,创建tulingxue,然后再创建mapper文件夹才行 在接口里声明方法时返回类型需要和红色圈1一样,,方法名需要和红色圈2一样,参数需要和红色圈3一样 在创建 根据全局配置文件的xml构建成SqlSessionFactory,里的

kkkkkkkok的博客 2660

ENSP内使用wireshark进行抓包,并且解析icmp报文

前四位:54 89 98 e8 20 38 为ip报文包的mac地址也就是物理地址。一开始进行抓包是没有icmp报文的,需要我们在ensp中使用pc1请求联通pc9。协议编号后分别为:ip版本、ip首部报文长度、服务类型、ip报文总长度。最后为校验和 、源ip地址、目的ip、从08 00开始为真正的数据。我们需要实验的端口为:0/0/4,也就是抓包第三个交换机内的报文。其中显示的icmp报文就是我们需要解析的ip报文。源mac地址后跟着的就是协议编号: 08 00。根据ip报文包的结构我们进行解析。

2301_81713278的博客 2138

IB网络下不同租户业务隔离方案

IB(InfiniBand)网络隔离可以在不同的通信模式下实现,其中包括 IPoIB(IP over InfiniBand)通信模式。在 IPoIB 模式下,InfiniBand 网络可以承载 IP 数据包,使得基于 IP 的应用程序能够在 InfiniBand 网络上进行通信。在这种情况下,IB 网络隔离通常指通过配置 Partition Key(PKey)来实现不同的租户或应用程序之间的网络隔离。然而,IB 网络隔离并不仅限于 IPoIB 模式。

guganly的专栏 1527

MyBatis配置文件

(1)实现TypeHandler接口或继承BaseTypeHandler类;(2)且将自定义类配置到MyBatis的配置文件中。也可以使用包类型处理器,让MyBatis自动查找类型处理器:

z_y_j229970438的博客 2603

【知识分享】单端到混合S参数转换指南

信号完整性(SI)工程师几乎总是必须使用S参数,因为许多的高速接口和行业标准都正在转向串行链路架构,并使用基于S参数测量的频域限制指标,了解其工作过程将会很有意义。

一只豌豆象的博客 1577

Mybatis的核心配置文件

Mybatis的核心配置文件有两个,一个是全局配置文件,它包含了会深深影响Mybatis行为的设置和属性信息;一个是映射文件,它很简单,让用户能更专注于SQL代码。

yuiezt的专栏 3129

云端全自动AI漫剧生成工作流:从模型选型到完整实现

本文提出了一套云端全自动AI漫剧生成工作流解决方案,旨在解决传统漫剧制作效率低下的问题。该系统采用"编排引擎+模型矩阵"架构,通过集成大语言模型、图像生成、视频合成等技术,实现从剧本输入到成片输出的全流程自动化。 核心内容包括: 模型选型方案:剧本解析采用DeepSeek-V3/GPT-4o,图像生成使用DALL-E 3,视频合成选用Stable Video Diffusion,语音合成采用MiniMax TTS 系统架构设计:基于Celery分布式任务队列的编排层,分解任务至各功能模块

huanghm88的专栏 640

AI驱动的网络安全运维:智能化时代的安全保障

本项目旨在使用Python和AI技术构建一个智能化的网络安全运维系统,能够实时监测网络流量,检测潜在的安全威胁,并自动采取应对措施,从而提升网络安全管理的效率和准确性。具体内容包括:环境配置与依赖安装数据采集与预处理机器学习模型构建与训练实时威胁检测与响应实际应用案例通过本文的介绍,我们展示了如何使用Python和AI技术构建一个智能化的网络安全运维系统。

Echo_Wish 1290

MyBatis:核心配置文件

本篇内容包括:MyBatis 配置文件概述以及核心配置文件详解(configuration、properties、settings、typeAliases、typeHandlers、objectFactory等)的内容。

栗筝i的博客 5383

【AI智能体】基于Coze制作跨境电商客服助手工作流实战操作详解

基于Coze制作跨境电商客服助手工作流实战操作详解

congge 3462

Mybatis框架(二)再遇Mybatis之Mybatis配置文件与映射文件

再遇Mybatis之Mybatis配置文件与映射文件

JF的博客 1076

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MyBatis(二) mybatis配置文件分析

文章目录一、生命周期1.1 SqlSessionFactoryBuilder1.2 SqlSessionFactory1.3 SqlSession二、mybatis配置文件2.1 属性(properties)2.2 设置(settings)2.3 类型别名(typeAliases)2.4 environments元素2.5 mappers(映射器)2.6 mapper文件 一、生命周期 上一篇写了几个创建sqlSession对象需要构建出其他的一些对象。对这些对象有一些简单的认识。 1.1 SqlSessi

GXlbj23的博客 295

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

5.1 mybatis配置文件之properties配置

在章节中分析了mybatis解析properties的源码,通过源码可以发现properties支持3种用法。

u010502101的博客 1800

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaEE——MyBatis配置文件的详细介绍

JavaEE——MyBatis配置文件的详细介绍

hssjsh的博客 1641

Mybatis配置文件头

Mybatis配置文件头 mapping映射文件头: <?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"> configure配置文件头: <?xml version="1.0" encoding="UTF-8" ?> <

maplecsd的博客 7873

MyBatis学习:MyBatis的配置文件

我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。记录了dao层接口的实现以及为什么要实现它。

weixin_46281472的博客 5663

详解mybatis配置文件

详解mybatis配置文件 在前面两篇文章中,大致与大家分享了基于Java的ORM框架,Mybatis基本架构和Mybatis实现CRUD的基本原理与流程,在本篇文章中,继续与大家分享Mybatis配置文件。 通过研究Mybatis官网配置文件,不难得出如下两个结论: 结论一:Mybatis配置文件结构是固定的 ...

Alan_beijing 267

Mybatis 配置文件

作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!

smart_an的专栏 734

[MyBatis]主配置文件

MyBatis 是一个数据持久层的框架,它封装了jdbc的操作数据库的相关操作,使开发者不需要花费精力去处理例如注册驱动、创建connection和 statement、手动设置参数、结果集检索等jdbc繁杂的相关操作,提高了使用者的编程速度。

m0_74217128的博客 515

Mybatis配置文件

XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。映射文件的根元素为mapper,它的namespace属性为映射器接口的完全限定名。POOLED:这是JDBC连接对象的数据库连接池的实现,用来避免创建新的连接实例。driver – 是 JDBC 驱动的 Java 类的完全限定名。以下子元素的id属性值为接口中的某个方法名称。

LIUCHANGSHUO的博客 847
上一篇: Mybatis【与Spring整合】
下一篇: Struts2与Spring整合
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值