Mybatis框架搭建
思路:
-
搭建环境
-
导入Mybatis
-
编写代码
-
测试
一.搭建环境
-
创建数据库
/* Navicat Premium Data Transfer Source Server : Mybatis Source Server Type : MySQL Source Server Version : 50528 Source Host : localhost:3306 Source Schema : mybatis Target Server Type : MySQL Target Server Version : 50528 File Encoding : 65001 Date: 03/03/2022 13:11:06 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for employee -- ---------------------------- DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `age` int(10) NOT NULL, `position` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of employee -- ---------------------------- INSERT INTO `employee` VALUES (1, '张三', 20, '员工'); INSERT INTO `employee` VALUES (2, '李四', 18, '员工'); INSERT INTO `employee` VALUES (3, '王五', 35, '经理'); SET FOREIGN_KEY_CHECKS = 1;
-
创建数据库连接信息配置文件db.properties
db.driver = com.mysql.jdbc.Driver db.url = jdbc:mysql://localhost:3306/learn-test?useUnicode=true&characterEncoding=utf8 db.username = root db.password = root
-
新建项目,并且在pom.xml中添加项目依赖
<?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>com.wfy</groupId> <artifactId>Worker</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>worker-01</module> </modules> <!--导入依赖--> <dependencies> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources> </build> </project>
二、创建模块
-
创建Mybatis的核心配置文件mybatis-config.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"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/UserMapper"/> </mappers> </configuration>
-
-
编写Mybatis工具类
package utils; 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 java.io.IOException; import java.io.InputStream; //SqlSessionFactory --->SqlSession public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { //使用Mybatis的第一步---->获取SqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。 // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
三.编写代码
-
实体类User 创建Pojo实体
package pojo; //实体类 public class User { private int id ; private String name; private int age; private String position; public User() { } public User(int id, String name, int age, String position) { this.id = id; this.name = name; this.age = age; this.position = position; } 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", position='" + position + '\'' + '}'; } }
-
Dao映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!--namespace=绑定一个Mapper/Dao接口--> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="dao.UserDao"> <!--执行select查询语句--> <select id="getUserList" resultType="pojo.User"> select * from mybatis.employee; </select> </mapper>
-
接口实现类
package dao; import pojo.User; import java.util.List; //Dao接口 public interface UserDao { List<User> getUserList(); }
-
编写测试类
package dao; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import pojo.User; import utils.MybatisUtil; import java.util.List; public class UserDaoTest { @Test public void test () { //第一步:获得SqlSession对象 SqlSession sqlSession= MybatisUtil.getSqlSession(); //第二步:执行SQL UserDao mapper=sqlSession.getMapper(UserDao.class); List<User> userList= mapper.getUserList(); for (User user : userList) { System.out.println(user); } //关闭sqlSession sqlSession.close(); } }