响应式电影资讯网站,网站设计方案定制,微信网站开发与网站实质区别,flash是怎么做网站的系列文章目录 提示#xff1a;这里可以添加系列文章的所有文章的目录#xff0c;目录需要自己手动添加 Mybatis之入门使用 提示#xff1a;写完文章后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、环境准备二、持久…系列文章目录 提示这里可以添加系列文章的所有文章的目录目录需要自己手动添加 Mybatis之入门使用 提示写完文章后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、环境准备二、持久层接口和映射文件三、测试持久层接口方法四、MyBatis工作流程总结 前言
提示这里可以添加本文要记录的大概内容
MyBatis 是一个优秀的持久层框架它简化了数据库操作提高了开发效率。在这篇博客中我将带领你入门 MyBatis了解如何使用它来操作数据库。 通过阅读这篇博客你将了解到 MyBatis 的基本概念和架构以及如何使用 MyBatis 创建映射文件、配置数据源和进行数据库操作。 无论是刚开始学习 MyBatis还是已经有一定经验的开发者这篇博客都将为你提供一个清晰的指导帮助你更好地理解和使用 MyBatis。让我们一起开始 MyBatis 的学习之旅吧 提示以下是本篇文章正文内容下面案例可供参考
一、环境准备
1.准备好数据库建立表这里大家自行创建 2.创建maven工程引入依赖
dependencies!-- mybatis --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.7/version/dependency!-- mysql驱动包 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version/dependency!-- junit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.10/version/dependency!-- log4j --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.12/version/dependency
/dependencies3.在resources目录下创建mybatis核心配置文件SqlMapConfig.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 配置环境 --environments defaultmysqlenvironment idmysql!-- 事务类型 --transactionManager typeJDBC/transactionManager!-- 数据源 --dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql:///mybatis/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environments
/configuration
4.将log4j.properties文件放入resources中让控制台打印SQL语句。
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategoryINFO, CONSOLE debug info warn error fatal
log4j.rootCategorydebug, CONSOLE# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
#log4j.logger.org.apache.axis.enterpriseFATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLEorg.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layoutorg.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern[%d{MM/dd HH:mm:ss}] %-6r [%15.15t] %-5p %30.30c %x - %m\n5.创建实体类
public class User {private int id;private String username;private String sex;private String address;// 省略getter/setter/构造方法/toString方法
}
二、持久层接口和映射文件
1.在java目录创建持久层接口
public interface UserMapper {ListUser findAll();
}
2.在resource目录创建映射文件。需要注意的是映射文件要和接口名称相同例如假如接口名称为UserMapper则映射文件的名称则为UserMapper.xml。映射文件要和接口的目录结构相同例如接口的目录为com.zhangsan.UserMapper,则映射文件的目录则为,com.zhangsan.UserMapper.xml。
?xml version1.0 encodingUTF-8?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.zhangsan.mapper.UserMapperselect idfindAll resultTypecom.zhangsan.pojo.Userselect * from user/select
/mapper
其中:
映射文件中namespace属性要写接口的全名。映射文件中标签的id属性是接口方法的方法名。映射文件中标签的resultType属性是接口方法的返回值类型。映射文件中标签的parameterType属性是接口方法的参数类型。映射文件中resultType、parameterType属性要写全类名如果是集合类型则写其泛型的全类名。
注意参数/返回值类型为基本数据类型/包装类/String等类型时我们可以写全类名也可以写别名。
项目Valuebyte_bytelong_longshort_shortint_intint_integerdouble_doublefloat_floatboolean_booleanStringstringBytebyteLonglongShortshortIntegerint/integerDoubledoubleFloatfloatBooleanbooleanDatedateBigDecimaldecimal/bigdecimalObjectobjectMapmapHashMaphashmapListlistArrayListarraylistCollectioncollectionIteratoriterator
三、测试持久层接口方法
Test
public void testFindAll() throws Exception {// 1读取核心配置文件InputStream is Resources.getResourceAsStream(SqlMapConfig.xml);// 2创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder builder new SqlSessionFactoryBuilder();// 3SqlSessionFactoryBuilder对象获取SqlSessionFactory对象SqlSessionFactory factory builder.build(is);// 4SqlSessionFactory对象获取SqlSession对象SqlSession session factory.openSession();// 5SqlSession对象获取代理对象UserMapper userMapper session.getMapper(UserMapper.class);// 6代理对象执行方法ListUser all userMapper.findAll();all.forEach(System.out::println);// 7释放资源session.close();is.close();
}
其中
SqlSessionFactoryBuilderSqlSession工厂构建者对象使用构造者模式创建SqlSession工厂对象。SqlSessionFactorySqlSession工厂使用工厂模式创建SqlSession对象。SqlSession该对象可以操作数据库也可以使用动态代理模式创建持久层接口的代理对象操作数据库。Mapper持久层接口的代理对象他具体实现了持久层接口用来操作数据库。
四、MyBatis工作流程
创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder对象构建了SqlSessionFactory对象构造者模式SqlSessionFactory对象生产了SqlSession对象工厂模式SqlSession对象创建了持久层接口的代理对象动态代理模式代理对象操作数据库
注意后面关于Mybatis的讲解将不再进行环境的准备 总结
提示这里对文章进行总结
在本博客中我们深入探讨了 MyBatis 这个强大的 ORM对象关系映射框架学习了如何使用它来简化数据库操作。我们首先了解了 MyBatis 的基本架构和工作原理包括映射文件、配置文件和 SQL 映射语句的概念。 然后我们逐步引导读者完成了创建映射文件、配置数据源以及执行增删改查操作的过程。通过实际示例读者可以更好地理解如何将实体类与数据库表进行映射以及如何使用 MyBatis 提供的查询语句和参数传递功能。 总而言之通过本博客读者对 MyBatis 有了全面的了解并掌握了使用它进行数据库操作的基本技能。无论是刚接触 MyBatis 的新手还是希望进一步提升技能的开发者都能从本博客中获得有价值的信息。