当前位置: 首页 > news >正文

津南做网站的公司淘宝seo是什么

津南做网站的公司,淘宝seo是什么,网站建设和托管哪家好,网页游戏赚钱大家好,我是王有志。 今天给大家带来的是一道来自京东的 MyBatis 面试题:MyBatis 中有几种加载映射器(Mapper.xml)的方式? 常见加载 MyBatis 映射器的方式有 5 种,可以根据不同的使用方式来进行具体区分&…

大家好,我是王有志。

今天给大家带来的是一道来自京东的 MyBatis 面试题:MyBatis 中有几种加载映射器(Mapper.xml)的方式?

常见加载 MyBatis 映射器的方式有 5 种,可以根据不同的使用方式来进行具体区分:

  • MyBatis 原生应用,即不与 Spring 或 Spring Boot 集成,可以通过配置文件和 Java 编码的方式加载映射器;
  • MyBatis 与 Spring 集成,可以通过加载 Spring Bean 的方式完成 MyBatis 映射器的加载;
  • MyBatis 与 Spring Boot 集成,可以通过@MapperScan@Mapper注解完成 MyBatis 映射器的加载。

下面,我们来具体看下每种方式是如何加载 MyBatis 映射器的。

原生 MyBatis 应用

原生 MyBatis 应用中(即不与 Spring 或 Spring Boot 集成的 MyBatis 应用),可以通过两种方式加载映射器(Mapper.xml):

  • 通过 myabtis-config.xml 加载映射器;
  • 通过 Java 编码的方式加载映射器。

通过 mybatis-config.xml 加载映射器

与 MyBatis入门中实现的简单例子一样,只需要在 mybatis-config.xml 中配置映射器即可:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 省略环境配置 --><mappers><mapper resource="mapper/UserMapper.xml"/><mapper resource="mapper/CompanyMapper.xml"/></mappers>
</configuration>

通过 Java 编码的方式加载映射器

MyBatis入门中的附录中同样有相关的例子:

DataSource dataSource = new PooledDataSource("com.mysql.cj.jdbc.Driver", "jdbc:mysql://localhost:3306/mybatis", "root", "123456");
TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);// 加载映射器
configuration.addMapper(UserMapper.class);

如果希望加载某个包下的全部 Mapper.xml,可以使用Configuration#addMappers进行加载:

configuration.addMappers("com.wyz.mapper");

MyBatis 与 Spring 集成

MyBatis 与 Spring 集成后,可以通过加载 Bean 的方式加载 MyBatis 的映射器(Mapper.xml),我们还是按照 MyBatis入门中的步骤,先完成 Java 对象 UserDO,Java 接口 UserMapper 的创建,接着是编写 MyBatis 的映射器 UserMapper.xml,最后我们还需要引入相关依赖:

<dependencies><!-- 省略 MySQL,junit等依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.1.4</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>6.1.4</version></dependency>
</dependencies>

接下来我们通过注入 Spring Bean 的方式来加载 Mapper.xml,这里我们创建 spring-beans.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="123456"/></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="mapper/UserMapper.xml"/></bean><!-- 通过 Spring Bean 的方式加载 MyBatis 映射器--><bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"><property name="mapperInterface" value="com.wyz.mapper.UserMapper"/><property name="sqlSessionFactory" ref="sqlSessionFactory"/></bean>
</beans>

最后我们来测试:

package com.wyz.mapper;import com.wyz.entity.UserDO;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.List;@Slf4j
public class UserMapperTest {@Testpublic void test(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-beans.xml");UserMapper userMapper = applicationContext.getBean("userMapper", UserMapper.class);List<UserDO> users = userMapper.selectAll();for(UserDO user : users) {System.out.println(user.toString());}}
}

MyBatis 与 Spring Boot 集成

MyBatis 与 Spring Boot 集成后,可以通过注解的方式或配置文件的方式加载 MyBatis 的映射器(Mapper.xml),使用起来非常的方便。
首先,我们还是做好前期的准备,创建 Java 对象 UserDO,Java 接口 UserMapper,MyBatis 的映射器文件 UserMapper.xml,接着我们来写 Spring Boot 的配置文件,主要完成数据库相关的配置:

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisusername: rootpassword: 123456

通过 @MapperScan 注解加载映射器

我们需要在 Spring Boot 应用的启动类上使用@MapperScan注解,并扫描 Mapper 文件所在的包来加载 MyBatis 的映射器:

package com.wyz;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.wyz.mapper")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

最后我们来进行测试:

package com.wyz.mapper;import com.wyz.entity.UserDO;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
public class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testpublic void test() {List<UserDO> users = userMapper.selectAll();for(UserDO user : users) {System.out.println(user.toString());}}
}

通过 @Mapper 注解加载映射器

除了使用@MapperScan注解加载某些包下的映射器外,还可以为每个映射器接口添加@Mapper接口来加载映射器,我们把 Spring Boot 启动类上的@MapperScan注解删除,为 UserMapper 接口添加@Mapper注解:

package com.wyz.mapper;import com.wyz.entity.UserDO;import java.util.List;public interface UserMapper {List<UserDO> selectAll();
}

好了,今天的内容就到这里了,如果本文对你有帮助的话,希望多多点赞支持,如果文章中出现任何错误,还请批评指正。最后欢迎大家关注分享硬核 Java 技术的金融摸鱼侠王有志,我们下次再见!

http://www.hengruixuexiao.com/news/52283.html

相关文章:

  • 高端网站设计平台脱发严重是什么原因引起的
  • 网站开发适配营销方式和渠道
  • 本地电脑独立ip做网站网络游戏推广公司
  • 大红门做网站的公司aso优化什么意思
  • 济南行知做网站百度推广怎么做免费
  • 公司网站建设教程中公教育培训机构官网
  • 纪念币商城网站建设舆情分析网站
  • 专业网站建设公司哪家靠谱营销网络的建设
  • 手机网站开发者工具视频营销案例
  • 泰安网站设计百度一下你就知道了官网
  • 衡水建设局网站seo关键词推广公司
  • 网站用 做有什么好处潍坊关键词优化软件
  • 外网网站建设沧州百度推广总代理
  • 制作网站的步骤和方法广东省最新疫情
  • 购物网站后台好管理吗一周热点新闻
  • 一个网站做多少个关键词比较好优化推广联盟
  • 独立网站的建设东营seo
  • 通信技术公司网站建设南昌做seo的公司有哪些
  • 黑糖不苦建设的网站百度指数查询app
  • 网站建设 报价单 doc线上推广引流渠道
  • 哪个网站有做车库门的求几个微信推广平台
  • 东莞优速网站建设推广罗裕seo研究学院
  • 咸宁做网站的公司网络营销推广技巧
  • 哪里找做网站的公司百度天眼查公司
  • 山东百度推广代理商广州seo成功案例
  • 有经验的宁波网站建设精准防控高效处置
  • 做门户网站开发的技术百度搜索引擎优化详解
  • 网站维护 网站后台建设知识提升关键词
  • 网站建设服务器百度云seo排名软件免费
  • 网站主体变更站长之家 seo查询