mybatis - idea创建普通工程,实现select查询 作者:马育民 • 2025-07-12 16:12 • 阅读:10001 # 最终工程目录 [](https://www.malaoshi.top/upload/0/0/1GW1TdTaitlu.png) # 创建mybatis工程 使用idea创建工程,如下截图: [](https://www.malaoshi.top/upload/0/0/1GW1TdUExjgy.png) # 添加依赖jar包 ### 创建lib文件夹 [](https://www.malaoshi.top/upload/0/0/1GW1TdV8duI2.png) [](https://www.malaoshi.top/upload/0/0/1GW1TdVvuCJC.png) ### 复制jar包 [](https://www.malaoshi.top/upload/0/0/1GW1TdWM3ioG.png) ### 将jar添加到库中 添加后才能生效 [](https://www.malaoshi.top/upload/0/0/1GW1TdX8mZqL.png) [](https://www.malaoshi.top/upload/0/0/1GW1TdXROnjO.png) # mybatis总配置文件 使用MySQL8驱动连接 MySQL8数据库 ### 创建文件 在 `src` 文件夹下创建 `mybatis-config.xml`: [](https://www.malaoshi.top/upload/0/0/1GW1TdZiZZAU.png) [](https://www.malaoshi.top/upload/0/0/1GW1TdaFdwuY.png) ### 内容 ``` ``` # log4j日志配置文件 ### 创建文件 在 `src` 文件夹下创建 `log4j.properties`: [](https://www.malaoshi.top/upload/0/0/1GW1TdZiZZAU.png) [](https://www.malaoshi.top/upload/0/0/1GW1TdiWuQXt.png) ### 内容如下 ``` # Global logging configuration log4j.rootLogger=DEBUG, stdout # 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 ``` # 创建实体类User 创建 `top.malaoshi.entity.User`类 ,该类中的属性名,与 `user`表 中的字段名 几乎相同,并且要有 `setter` 和 `getter` 方法 mybatis将 `User`类 与 `user`表 建立映射关系,此时该类称之为: **实体类** 映射关系如下图: [](https://www.malaoshi.top/upload/pic/mybatis/QQ20201109103243.png) ``` package top.malaoshi.entity; public class User { private String id; private String username; private String password; private Integer age; private String sex; private String status; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` # 创建 IUserMapper 接口 创建 `top.malaoshi.mapper.IUserMapper` 接口,通过该接口可以对数据库进行增删改操作 **mybatis特点之一:**不需要写实现代码 ``` package top.malaoshi.mapper; import top.malaoshi.entity.User; import java.util.List; public interface IUserMapper { public List selectAll(); } ``` # mapper.xml文件(关键) 操作数据库的sql语句,配置在 `xxxMapper.xml` 中,一般情况下,一个表 对应 一个`xxxMapper.xml` 在 `resources` 文件夹下创建 `mapper` 文件夹,在 `mapper` 文件夹下创建 `userMapper.xml`,内容如下: ``` select id,username,password from user ``` **解释:** - resultType属性:查询出来的结果,封装到`User`类对象中 ### 注意: - namespace名字必须与dao包路径接口名完全相同 - id名必须与dao中的方法名相同 # mapper接口和mapper.xml关系 [](https://www.malaoshi.top/upload/pic/mybatis/QQ20210126082839.png) # 测试类 ``` import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import top.malaoshi.entity.User; import top.malaoshi.mapper.IUserMapper; import java.io.IOException; import java.io.InputStream; import java.util.List; public class Main { public static void main(String[] args) throws IOException { /* 1. 读取全局配置文件. getResourceAsStream 使用的资源路径 */ InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 2. 使用sqlSession的工厂构造器来读入全局配置,再生成一个sqlSession工厂. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 3. 通过 sqlSession 工厂打开一个 sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); try { //4 使用SqlSession创建Dao接口的代理对象 IUserMapper mapper = sqlSession.getMapper(IUserMapper.class); List list=mapper.selectAll(); for(User user:list){ String info= String.format("id:%s,用户名:%s,密码:%s",user.getId(),user.getUsername(),user.getPassword() ); System.out.println(info); } }finally{ sqlSession.close(); inputStream.close(); } } } ``` 执行结果: [](https://www.malaoshi.top/upload/0/0/1GW1TdRG4cLm.png) 原文出处:http://www.malaoshi.top/show_1GW1TdlZ8857.html