mybatis 第一个程序
思路:搭建环境 + 导入 Mybatis + 编写代码 + 测试
2.1 创建项目
-
导入依赖
<!--导入依赖--> <dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
-
搭建数据库
create database mybatis;
use mybatis;
create table user(
id int(20) not null primary key,
name varchar(30) default null,
pwd varchar(30) default null
);
insert into `user`(id, name, pwd) values
(1, '小费', '123456'),
(2, '小尤', '542103'),
(3, '小白', '888521')
2.2 创建一个模块
-
编写 mybatis 的核心配置文件
<?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"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/alivin/dao/UserMapper.xml"/> </mappers> </configuration>
-
编写 mybatis 工具类
public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { // 1. 加载资源 String resource = "mybatis-config.xml"; // 2. 获取输入流 InputStream inputStream = Resources.getResourceAsStream(resource); // 3. 使用 mybatis 获取 sqlSessionFactory 对象 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } // 有了 SqlSessionFactory,就可以从中获得 SqlSession 的实例 // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
-
编写代码
-
实体类
public class User { private int id; private String name; private String pwd; public User() { } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", uname='" + uname + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
-
Dao 接口
public interface UserDao { List<User> getUserList(); }
-
接口实现类由原来的 UserDaoImpl 转变成一个 Mapper 配置文件
<?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"> <!--namespace=绑定了一个对应的 Dao/Mapper 接口--> <mapper namespace="com.alivin.dao.UserDao"> <!--select 查询语句--> <select id="getUserList" resultType="com.alivin.pojo.User"> select * from mybatis.user </select> </mapper>
-
2.4 测试
junit 测试
@Test
public void test() {
// 获得 SqlSession 对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
// 执行 SQL
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
Now is better than never
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端