欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Mybatis学习笔记,

来源: javaer 分享于  点击 39547 次 点评:252

Mybatis学习笔记,


简介

官方文档:链接

MyBatis作用


历史


为什么要使用MyBatis?

JDBC


Hibernate


Mybatis


MyBatis入门程序

1. 创建 jar工程

2. 导入jar包

在这里插入图片描述

3. 创建数据库

在这里插入图片描述

/*
Navicat MySQL Data Transfer

Source Server         : itlike
Source Server Version : 50720
Source Host           : localhost:3306
Source Database       : mybatis

Target Server Type    : MYSQL
Target Server Version : 50720
File Encoding         : 65001

Date: 2018-12-04 14:13:49
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for customer
-- ----------------------------
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer` (
  `cust_id` int(11) NOT NULL AUTO_INCREMENT,
  `cust_name` varchar(255) DEFAULT NULL,
  `cust_profession` varchar(255) DEFAULT NULL,
  `cust_phone` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of customer
-- ----------------------------
INSERT INTO `customer` VALUES ('1', '鲁班', '射手', '13499887733', '12341241@qq.com');
INSERT INTO `customer` VALUES ('2', '李白', '刺客', '18977665521', 'libai@163.com');
INSERT INTO `customer` VALUES ('3', '阿轲', '刺客', '18977665997', 'aike@qq.com');
INSERT INTO `customer` VALUES ('4', '德玛西亚', '肉盾', '13700997665', 'demaxiya.126.com6');
INSERT INTO `customer` VALUES ('5', '亚索', '战士', '13586878987', 'yasuo@qq.com');
INSERT INTO `customer` VALUES ('6', '奶妈', '辅助', '13398909089', 'nama@qq.com');
INSERT INTO `customer` VALUES ('7', '剑圣', '刺客', '13398909088', 'jiansheng@163.com');
INSERT INTO `customer` VALUES ('8', '盖伦', '肉盾', '15923242231', 'gailun@126.com');
INSERT INTO `customer` VALUES ('9', '锤石', '辅助', '13398908900', '8888@163.com');
INSERT INTO `customer` VALUES ('10', '阿木木', '辅助', '13398908928', '13398908928@qq.com');

4. 建立关系映射类pojo

在这里插入图片描述

@Getter@Setter//Lombok插件
public class Customer {
    private Integer cust_id;
    private String cust_name;
    private String cust_profession;
    private String cust_phone;
    private String email;

    @Override
    public String toString() {
        return "Customer{" +
                "cust_id=" + cust_id +
                ", cust_name='" + cust_name + '\'' +
                ", cust_profession='" + cust_profession + '\'' +
                ", cust_phone='" + cust_phone + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

5. 创建核心配置文件SqlMappingConfig.xml

在这里插入图片描述

<?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>
    <!-- spring整合后 environments配置将废除 使用spring中的连接池 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理 -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
</configuration>

6.创建与表对象的关系映射Mapping文件编写sql语句

Customer.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="myTest">
    <!--根据cust_id查询客户-->
    <select id="queryCustomerById" parameterType="Int" resultType="com.dj.domain.Customer">
        SELECT * FROM `customer` WHERE cust_id  = #{cust_id}
    </select>
</mapper>

7. 在核心配置文件当中引入Mapping

在这里插入图片描述

 <!--加载映射文件-->
    <mappers>
        <mapper resource="com\dj\domain\Customer.xml"></mapper>
    </mappers>

8.创建工厂,执行sql语句

在这里插入图片描述

public class Test01 {
    @Test
    public void test() throws IOException {
        //1.SqlSessionFactoryBuilder 加载配置文件
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //2.读取配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMappingConfig.xml");
        //3.获取session工厂
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(resourceAsStream);
        //4.创建会话 --JDBC链接
        SqlSession sqlSession = build.openSession();
        //5.执行sql语句
        Customer queryCustomerById = sqlSession.selectOne("queryCustomerById", 1);
        //6.打印信息
        System.out.println(queryCustomerById);
        //7.关闭会话
        sqlSession.close();
    }
}

在这里插入图片描述
执行流程:
在这里插入图片描述

MyBatis核心Api

SqlSessionFactoryBuilder


SqlSessionFactory


SqlSession


MyBatis架构

在这里插入图片描述

mybatis封装工具类查询所有用户

在这里插入图片描述

public class mybatisutils {
    public static final SqlSessionFactory build;
    static {
        //1.SqlSessionFactoryBuilder 加载配置文件
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //2.读取配置文件
        InputStream resourceAsStream = null;
        try {
            resourceAsStream = Resources.getResourceAsStream("SqlMappingConfig.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        //3.获取session工厂
        build = sqlSessionFactoryBuilder.build(resourceAsStream);
    }

    public static SqlSession openSession(){
        return build.openSession();
    }
}

在这里插入图片描述

MyBatis-查询

查询所有用户

//查询所有的用户
    @Test
    public void test02(){
        SqlSession sqlSession = mybatisutils.openSession();
        List<Customer> queryCustomerAll = sqlSession.selectList("queryCustomerAll");
        System.out.println(queryCustomerAll);
        //7.关闭会话
        sqlSession.close();
    }

配置sql打印

在SqlMappingConfig.xml配置
在这里插入图片描述
执行sql语句
在这里插入图片描述

模糊查询Like

在这里插入图片描述
在这里插入图片描述

参数介绍

#{}和${}

1. #{}:


2. ${}

保存更新删除

添加客户

在这里插入图片描述

  <!--添加客户-->
    <insert id="insertCustomer" parameterType="com.dj.domain.Customer">
        insert into customer(cust_name,cust_profession,cust_phone,email)values(#{cust_name},#{cust_profession},#{cust_phone},#{email})
    </insert>

在这里插入图片描述

 //添加用户
    @Test
    public void test04(){
        SqlSession sqlSession = mybatisutils.openSession();
        Customer customer = new Customer();
        customer.setCust_name("张飞");
        customer.setCust_phone("1684612684");
        customer.setCust_profession("肉盾");
        customer.setEmail("12515165@qq.com");
        //执行sql
        sqlSession.insert("insertCustomer", customer);
        //6.提交事务
        sqlSession.commit();
        //7.关闭会话
        sqlSession.close();
    }

在这里插入图片描述

返回添加过后自增的主键

在这里插入图片描述

 <!--添加客户-->
    <insert id="insertCustomer" parameterType="com.dj.domain.Customer">
        <!--获取插入的ID-->
        <selectKey keyColumn="cust_id" keyProperty="cust_id" order="AFTER" resultType="Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into customer(cust_name,cust_profession,cust_phone,email)values(#{cust_name},#{cust_profession},#{cust_phone},#{email})
    </insert>

在这里插入图片描述

更新操作

在这里插入图片描述
在这里插入图片描述

删除操作

在这里插入图片描述
在这里插入图片描述

MyBatis开发DAO

原始Dao开发方法

Mapper动态代理

要求


selectOne和selectList


参数传递

单个参数

多个参数

在这里插入图片描述

@param命名参数

当这些参数属于我们业务POJO时,我们直接传递POJO
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Map

我们也可以封装多个参数为map,直接传递

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MaBatis核心配置文件

properties

定义属性及读取属性文件

在这里插入图片描述

settings

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为

在这里插入图片描述
在这里插入图片描述

typeAliases

类型别名是为 Java 类型设置一个短的名字

typeHandlers


Plugins

Environments

Environment子标签

databaseIDProvider

MyBatis 可以根据不同的数据库厂商执行不同的语句。
可以能过databaseIDProvider标签来进行设置

<databaseIdProvider type="DB_VENDOR">
        <property name="MYSQL" value="mysql"/>
        <property name="DB2" value="db2"/>
        <property name="Oracle" value="oracle" />
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>

在这里插入图片描述
在这里插入图片描述

mappers

输出类型

输出简单类型

在这里插入图片描述

Map

第1种形式:
key:是列名 value:是列名对应的值
在这里插入图片描述
第2种形式:
Map<key,自定义对象>:key为自己指定的我列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

resultMap


表名与domain
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多表操作

ManyToOne

关系表
在这里插入图片描述
查询
分步查询
第一步 先查出所有的订单
在这里插入图片描述
第二步 根据id查出对应客户
在这里插入图片描述
左连接查询
查询所有的订单及订单所对应的客户
左连接:把左边表的数据全部查出,右边表只查出满足条件的记录

应对sql

SELECT * FROM `order` as o LEFT JOIN customer as c on o.cus_id = c.cust_id;

建立domain
在这里插入图片描述
建立Mapping映射
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
分部查询懒加载

 <!--延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--当开启时,任何方法的调用都会加载该对象的所有属性。否则,每个属性会按需加载-->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!--指定哪个对象的方法触发一次延迟加载。-->
        <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode"/>

OnToMany

查询
查询客户和客户订单
在这里插入图片描述
sql语句

SELECT * FROM customer as c LEFT JOIN `order` as o  on c.cust_id = o.cust_id;

映射
在这里插入图片描述
测试
在这里插入图片描述
添加
保存数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
维护外键
在这里插入图片描述
在这里插入图片描述
管理关系
在这里插入图片描述
删除
删除时一定要先打破关系再做删除操作
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ManyToMany

关系表
在这里插入图片描述
查询
分步查询
查询出指定的老师
在这里插入图片描述
在这里插入图片描述

根据老师id查询出所有学生
在这里插入图片描述
在这里插入图片描述

查询
在这里插入图片描述
左边接查询
在这里插入图片描述
在这里插入图片描述

动态sql

什么是动态sql

通过mybatis提供的各种标签方法实现动态拼接sql。

. if标签

需求:根据客户名和级别查询客户
在这里插入图片描述
存在问题
有可能传入的名称或级别为空
可以使用if标签来进行判断
在这里插入图片描述

如果前一个条件这后,后面就会多一个and执行就会报错

Where标签

在这里插入图片描述
去掉第一个前And

trim标签

choose标签

foreach标签

查询条件值为指定的值当中在这里插入图片描述
给定的值可以以三种形式给出
数组:
在这里插入图片描述
List:
在这里插入图片描述
在这里插入图片描述
VO:
创建Vo
在这里插入图片描述
在这里插入图片描述

测试
在这里插入图片描述

bind标签

Sql片段

Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的。
在这里插入图片描述

缓存

一级缓存

缓存介绍


一级缓存


一级缓存失效


二级缓存

二级缓存介绍


二级缓存使用步骤

  • size:可以存放多少个元素
  • type:可以用来指定自定义的缓存
  • POJO需要实现Serializable接口
  • 注意事项:

    
    

    缓存相关属性:

    
    

    缓存使用顺序

    逆向工程

    MyBatis Generator

    
    

    使用

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <generatorConfiguration>
        <!--
        targetRuntime:设置自动生成的版本
        MyBatis3:
        MyBatis3Simple:简单增删改查
        -->
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <!--
               不要生成日期和备注
            -->
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"
                            userId="root"
                            password="1234">
            </jdbcConnection>
            <!--
            配置domain生成策略
            targetProject:把自动生成的domian放在哪个工程里面
            targetPackage:哪个包下
            -->
            <javaModelGenerator targetPackage="com.itlike.domain" targetProject=".\src">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!--
                配置mapper的生成策略
                targetPackage:把自动生成的mapper放在哪个工程里面
                targetProject:哪个包下
            -->
            <sqlMapGenerator targetPackage="com.itlike.mapper"  targetProject=".\src">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
            <!--
                mapper接口生成策略
            -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.itlike.mapper"  targetProject=".\src">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
            <table tableName="customer" domainObjectName="Customer" ></table>
            <table tableName="teacher" domainObjectName="Teacher" ></table>
            <table tableName="student" domainObjectName="Student" ></table>
        </context>
    </generatorConfiguration>
    
    1. 编写生成代码
     List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("./src/generatorConfig.xml");
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
    

    分页插件

    <plugins>
            <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
        </plugins>
    
    1. 使用分页插件
      在查询之前设置分页
     Page<Object> page = PageHelper.startPage(1, 5);
    

    查询数据之后添加

    PageInfo<Customer> pageInfo = new PageInfo<>(customers, 5);
    

    属性介绍

            System.out.println("当前页:"+pageInfo.getPageNum());
            System.out.println("每页显示记录数:"+pageInfo.getPageSize());
            System.out.println("总页数:"+pageInfo.getPages());
            System.out.println("总记录数:"+pageInfo.getTotal());
            System.out.println("是否有上一页:"+pageInfo.isHasPreviousPage());
            System.out.println("是否有下一页:"+pageInfo.isHasNextPage());
            System.out.println("导航页面:"+ Arrays.toString(pageInfo.getNavigatepageNums()));
    

    SSM整合

    spring与springMVC

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
         http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
    ">
        <!--注解扫描-->
        <context:component-scan base-package="com.itlike"/>
    </beans>
    

    相关jar包
    在这里插入图片描述

    1. 在web.xml当中配置spring监听器
    <!--Spring的核心监听器-->
        <listener>
            <listener-class>
                org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>
        <!--
         加载Spring的配置文件的路径的
         默认加载的/WEB-INF/applicationContext.xml
         -->
        <context-param>
            <param-name> contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
    1. 添加springMVC相关jar包
      在这里插入图片描述
    2. 添加springMVC配置文件
      springmvc.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    	http://www.springframework.org/schema/beans/spring-beans.xsd
    	http://www.springframework.org/schema/context
    	http://www.springframework.org/schema/context/spring-context.xsd
    	http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    	">
        <!--注解扫描-->
        <context:component-scan base-package="com.itlike">
            <!--只扫描控制器-->
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
        <!--静态资源访问-->
        <mvc:default-servlet-handler/>
        <mvc:annotation-driven />
        <!--配置视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/view/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    </beans>
    
    1. 在web.xml当中配置springMVC前端控制器和编码
     <!-- 解决post乱码问题 -->
        <filter>
            <filter-name>encoding</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <!-- 设置编码参是UTF8 -->
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!-- 配置SpringMVC前端控制器 -->
        <servlet>
            <servlet-name>mySpringMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 指定SpringMVC配置文件 -->
            <!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>mySpringMVC</servlet-name>
            <!-- 拦截所有,不包括jsp,包含.js .png.css     建议使用  -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    1. 测试springMVC
      创建form表单
    <form action="${pageContext.request.contextPath}/addcustomer">
         客户名称:<input type="text"> <br>
         客户职业:<input type="text"/> <br>
         客户电话: <input type="text"/> <br>
         客户邮件: <input type="text"/> <br>
        <input type="submit" value="添加">
      </form>
    

    创建CustomterController处理业务
    在这里插入图片描述
    在这里插入图片描述

    添加Mybatis

    1. 添加Mybatis相关jar包
      在这里插入图片描述
    2. 添加Mybatis配置文件和数据库属性文件
      sqlMapConfig.xml
    <?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>
        <settings>
            <setting name="logImpl" value="STDOUT_LOGGING"/>
        </settings>
        <typeAliases>
            <!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) -->
            <package name="com.myxq.domain" />
        </typeAliases>
    </configuration>
    

    db.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=1234
    
    1. 创建CustomerMapper
    <?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.itlike.mapper">
    </mapper>
    
    1. 在applicationContext配置文件中添加Mybatis数据库相关配置信息
     <!--加载数据库属性文件-->
        <context:property-placeholder location="classpath:db.properties"/>
        <!--连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}" />
            <!--属性文件当中的名称不能和name名称一样-->
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
        </bean>
        <!-- 配置事务管理器 -->
        <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <!-- 数据源 -->
            <property name="dataSource" ref="dataSource" />
        </bean>
        <!-- 开启注解事务 -->
        <tx:annotation-driven transaction-manager="transactionManager"/>
        <!-- Mybatis的工厂 -->
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!-- 核心配置文件的位置 -->
            <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
            <!--配置mapper映射文件的路径-->
            <property name="mapperLocations" value="classpath:com/itlike/mapper/*.xml"/>
        </bean>
        <!-- 配置Mapper扫描 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- 配置Mapper扫描包 -->
            <property name="basePackage" value="com.itlike.mapper" />
        </bean>
    

    相关文章

      暂无相关文章
    相关栏目:

    用户点评