Hello MyBatis !
1.导包 2.编写配置文件 3.编写实体类 4.编写实体类对应的Mapper接口和Mapper.XML文件 5.测试
导入依赖

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 父工程--> <groupId>org.example</groupId> <artifactId>Mybatis_Study</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>mybatis_01</module> </modules> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> </dependencies> </project>
配置环境(设置与数据库连接的一些条件)

<?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"> <!-- JDBC的事务管理--> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="my7shig69l>A"/> </dataSource> </environment> </environments> <!-- 每一个mapper.xml都需要在mybatis核心配置文件中注册--> <mappers> <mapper resource="com/ljm/dao/UserMapper.xml"/> </mappers> </configuration>
编写工具类(获取SqlSession对象,用来实现对数据库的操作)

import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserDao_test { @Test public void test(){ //获得SqlSession对象 SqlSession sqlSession=MybatisUtils.getSqlSession(); //执行sql UserDao mapper=sqlSession.getMapper(UserDao.class); //com.ljm.dao.UserDao 需要去配置 List<User> userList = mapper.getUserList(); for(User user:userList){ System.out.println(user); } sqlSession.close(); } }
接口(公有操作,这里用来获取用户信息)
用户类(的字段与数据库的对象字段相同?)
Mapper.xml (实现接口,取代以前的*lmp实现类)

<?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接口--> <mapper namespace="com.ljm.dao.UserDao"> <!-- 实现对应的接口方法--> <!-- 由原来的UserDaoImp转换为一个Mapper配置文件--> <!-- id与方法名一致--> <select id="getUserList" resultType="com.ljm.pojo.User"> select * from mybatis.user </select> </mapper>
测试

import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserDao_test { @Test public void test(){ //获得SqlSession对象 SqlSession sqlSession=MybatisUtils.getSqlSession(); //获取用来执行sql的mapper // 获取方式一(推荐): UserDao mapper=sqlSession.getMapper(UserDao.class); //com.ljm.dao.UserDao 需要去配置 // List<User> userList = mapper.getUserList(); // 方式二 List<User> userList=sqlSession.selectList("com.ljm.dao.UserDao.getUserList"); for(User user:userList){ System.out.println(user); } sqlSession.close(); } }
官方建议(为了确保每次都能执行关闭操作,你应该把这个关闭操作放到 finally 块中)

import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserDao_test { @Test public void test(){ //获得SqlSession对象 SqlSession sqlSession = null; //获取用来执行sql的mapper try { sqlSession=MybatisUtils.getSqlSession(); // 获取方式一(推荐): UserDao mapper=sqlSession.getMapper(UserDao.class); List<User> userList = mapper.getUserList(); // 方式二 // List<User> userList=sqlSession.selectList("com.ljm.dao.UserDao.getUserList"); for(User user:userList){ System.out.println(user); } } finally { sqlSession.close(); } } }
可能遇到的问题
[静态资源过滤] 解决方法 pom.xml中添加

<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> </build>
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术