Mybatis入门使用
参考官网:https://mybatis.net.cn/getting-started.html
1.新建Maven项目,新建——选择SDK找到jdk包——填入GroupId和ArtifactId——选择路径——完成
GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织
比如我创建一个项目,我一般会将groupId设置为cn.xx,cn表示域为中国,xx任意,artifactId设置为testProject,表示你这个项目的名称是testProject,依照这个设置,你的包结构是cn.xx.testProject打头的,如果有个StudentDao,它的全路径就是cn.xx.testProj.dao.StudentDao
2.【配置Mybatis环境】导入Mybatis的jar包+导入Mysql的jar包,在pom.xml中编辑
<packaging>jar</packaging> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> </dependencies>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
3.连接数据库,在resource目录里新建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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/数据库名?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> </configuration>

<settings> <setting name="logImpl" value="LOG4J"/> </settings> <!-- configuration内,environments外-->

<!-- 日志--> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.1</version> </dependency>

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.com.cyk.mapper=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
配置三种datasource type[三种数据源:UNPOOLED、POOLED、JNDI]
还有很多可以在 XML 文件中配置的选项,上面的示例仅罗列了最关键的部分。 注意 XML 头部的声明,它用来验证 XML 文档的正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。
4.【业务代码编写and测试】在src/main/java文件里新建包[domian(实体类),dao(接口),test(测试)]
在写实体类的时候需要实现序列化接口,才能保证数据传输
implements Serializable
写完实体类,接口,然后到test包里写测试程序,在函数前如需要引用@Test/@After/@Before等时候,(自动)会在pom.xml文件里增添以下代码(选择到+Alt+Enter)
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency>
然后就是在业务程序中 构建 SqlSessionFactory、获取 SqlSession ,写具体业务程序
【SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。】

String resource = "my.xml"; InputStream in = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); SqlSession session = sqlSessionFactory.openSession(true); Dao类 Dao类对象= session.getMapper(Dao类.class); ... session.close(); in.close();

InputStream in; SqlSession session; Dao类 Dao类对象; @Before public void Init() throws IOException { String resource = "my.xml"; in = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); session = sqlSessionFactory.openSession(true); Dao类对象 = session.getMapper(Dao类.class); } @After public void end() throws IOException { session.close(); in.close(); }
【注:my.xml文件也就是前面配置数据连接的xml文件】
5.在resource文件路径下,新建(接口层)Dao层同名路径,新建"实体类Mapper.xml"文件,在该文件中实现Dao层里的函数

<?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="在java包下的Dao层全名路径"> 此处写入sql语句 </mapper>
6.最后在配置数据库文件内<mappers></mappers>添加一组对应的映射器
<mapper resource="在resource包下实体类Mapper.xml的全名路径"></mapper>
7.可以测试业务程序了(数据库内需要先建实体类对应的表)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!