什么网站对护肤品测评做的很好湖南省建设厅网站
- 作者: 五速梦信息网
- 时间: 2026年04月20日 09:17
当前位置: 首页 > news >正文
什么网站对护肤品测评做的很好,湖南省建设厅网站,如何做网站卡密,做服装辅料一般什么网站找客户MyBatis 是一个优秀的持久层框架#xff0c;它简化了 Java 应用与关系数据库之间的映射。对于大多数 Java 开发者而言#xff0c;掌握 MyBatis 是必不可少的一部分。本文将详细介绍 MyBatis 的各个方面#xff0c;包括其基本原理、配置、操作、动态 SQL、插件机制和高级应用…MyBatis 是一个优秀的持久层框架它简化了 Java 应用与关系数据库之间的映射。对于大多数 Java 开发者而言掌握 MyBatis 是必不可少的一部分。本文将详细介绍 MyBatis 的各个方面包括其基本原理、配置、操作、动态 SQL、插件机制和高级应用等帮助你全面了解和熟练使用 MyBatis。 一、MyBatis 简介 1.1 什么是 MyBatis MyBatis 是一款支持定制 SQL、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的 JDBC 代码以及手动设置参数和获取结果集的过程。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java POJOPlain Old Java Objects为数据库中的记录。 1.2 MyBatis 的特点 灵活性高可以使用原生的 SQL 语句自由度高适应复杂的 SQL 查询。易于集成能够轻松集成到 Spring 框架等其他流行框架中。性能优异支持高效的缓存机制。动态 SQL支持动态 SQL 的生成。 二、MyBatis 的基本原理与架构 2.1 MyBatis 的工作原理 MyBatis 通过 SQL 映射文件或注解将 SQL 语句和 Java 方法关联起来并通过配置文件管理数据库连接池和事务。其核心组件包括 SqlSessionFactory、SqlSession、Mapper 等。 2.2 MyBatis 架构 ConfigurationMyBatis 的核心配置类包含所有配置信息。SqlSessionFactory创建 SqlSession 实例的工厂。SqlSessionMyBatis 与数据库交互的主要接口提供了执行 SQL、获取映射器等方法。MapperMyBatis 中的数据映射接口定义数据库操作方法。 三、MyBatis 的基本配置 3.1 配置文件 MyBatis 的配置文件一般分为主配置文件mybatis-config.xml和映射文件mapper.xml。 3.1.1 主配置文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mybatis/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environmentsmappersmapper resourceorg/mybatis/example/BlogMapper.xml//mappers /configuration3.1.2 映射文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceorg.mybatis.example.BlogMapperselect idselectBlog parameterTypeint resultTypeBlogSELECT * FROM Blog WHERE id #{id}/select /mapper3.2 MyBatis 配置详解 environments配置环境信息可以设置多个环境development、production等。transactionManager事务管理器配置通常有 JDBC 和 MANAGED 两种类型。dataSource数据源配置常见的类型有 UNPOOLED、POOLED 和 JNDI。 四、MyBatis 的基本操作 4.1 SqlSessionFactory 的创建 String resource mybatis-config.xml; InputStream inputStream Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);4.2 SqlSession 的使用 try (SqlSession session sqlSessionFactory.openSession()) {Blog blog session.selectOne(org.mybatis.example.BlogMapper.selectBlog, 101);System.out.println(blog); }4.3 Mapper 的使用 4.3.1 定义接口 public interface BlogMapper {Blog selectBlog(int id); }4.3.2 映射 XML 文件 mapper namespaceorg.mybatis.example.BlogMapperselect idselectBlog parameterTypeint resultTypeBlogSELECT * FROM Blog WHERE id #{id}/select /mapper4.3.3 调用 Mapper try (SqlSession session sqlSessionFactory.openSession()) {BlogMapper mapper session.getMapper(BlogMapper.class);Blog blog mapper.selectBlog(101);System.out.println(blog); }五、动态 SQL 5.1 if 标签 select idfindActiveBlogWithTitleLike resultTypeBlogSELECT * FROM Blog WHERE state ACTIVEif testtitle ! nullAND title like #{title}/if /select5.2 choose 标签 select idfindBlog resultTypeBlogSELECT * FROM Blog WHERE state ACTIVEchoosewhen testtitle ! nullAND title like #{title}/whenwhen testauthor ! null and author.name ! nullAND author_name like #{author.name}/whenotherwiseAND featured 1/otherwise/choose /select5.3 trim、where 和 set 标签 trim prefixWHERE prefixOverridesAND |OR … /trimwhere… /whereset… /set5.4 foreach 标签 select idselectPostIn resultTypedomain.blog.PostSELECT * FROM Post WHERE id INforeach itemitem indexindex collectionlistopen( separator, close)#{item}/foreach /select六、MyBatis 插件机制 6.1 插件接口 Intercepts({Signature(type Executor.class,method update,args {MappedStatement.class,Object.class})}) public class ExamplePlugin implements Interceptor {public Object intercept(Invocation invocation) throws Throwable {return invocation.proceed();}public Object plugin(Object target) {return Plugin.wrap(target, this);}public void setProperties(Properties properties) {// 设置属性} }6.2 注册插件 pluginsplugin interceptororg.mybatis.example.ExamplePluginproperty namesomeProperty value100//plugin /plugins七、MyBatis 高级应用 7.1 MyBatis 与 Spring 的集成 7.1.1 配置 DataSource bean iddataSource classorg.apache.commons.dbcp.BasicDataSourceproperty namedriverClassName valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mybatis/property nameusername valueroot/property namepassword valueroot/ /bean7.1.2 配置 SqlSessionFactoryBean bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBeanproperty namedataSource refdataSource/property namemapperLocations valueclasspath:org/mybatis/example/*.xml/ /bean7.1.3 配置 MapperScannerConfigurer bean classorg.mybatis.spring.mapper.MapperScannerConfigurerproperty namebasePackage valueorg.mybatis.example/ /bean7.2 MyBatis 二级缓存 7.2.1 配置缓存 cache evictionLRUflushInterval60000size512readOnlytrue/7.2.2 使用缓存 try (SqlSession session sqlSessionFactory.openSession()) {BlogMapper mapper session.getMapper(BlogMapper.class);Blog blog1 mapper.selectBlog(101);Blog blog2 mapper.selectBlog(101);System.out.println(blog1 blog2); // true }八、总结 本文详细介绍了 MyBatis 的各个方面从基本概念、配置、操作、动态 SQL 到插件机制和高级应用。希望通过这篇文章你能 对 MyBatis 有一个全面而深入的了解能够在实际项目中灵活应用 MyBatis 来处理各种复杂的数据库操作。
- 上一篇: 什么网站都可以进入的浏览器长宁区小学网站建设
- 下一篇: 什么网站可以接单做设计企业商城网站开发
相关文章
-
什么网站都可以进入的浏览器长宁区小学网站建设
什么网站都可以进入的浏览器长宁区小学网站建设
- 技术栈
- 2026年04月20日
-
什么网站从做系统网站建设 昆明邦凯网络
什么网站从做系统网站建设 昆明邦凯网络
- 技术栈
- 2026年04月20日
-
什么网站百度的收录高舆情网站大全
什么网站百度的收录高舆情网站大全
- 技术栈
- 2026年04月20日
-
什么网站可以接单做设计企业商城网站开发
什么网站可以接单做设计企业商城网站开发
- 技术栈
- 2026年04月20日
-
什么网站可以快速做3d效果图建网站价格 优帮云
什么网站可以快速做3d效果图建网站价格 优帮云
- 技术栈
- 2026年04月20日
-
什么网站可以找到手工活做做cpa的博客网站类型
什么网站可以找到手工活做做cpa的博客网站类型
- 技术栈
- 2026年04月20日
