Mybatis-Plus快速入门

ゝ一世哀愁。 2024-03-24 21:57 7阅读 0赞

#

目录

一、基础工程

1、创建一个数据库:mp

2、添加数据

3、创建初始工程

4、添加依赖

二、Mybatis + Mybatis-Plus

1、创建子工程:mybatis-plus-simple

2、在子工程下添加配置

2.1Mybatis实现查询User

2.1.1、编写User实体对象

2.1.2、编写UserMapper接口

2.1.3、编写UserMapper.xml文件

2.1.4、编写TestMybatis测试

2.2Mybatis+MP实现查询User

2.2.1、将UserMapper继承BaseMapper,将拥有了BaseMapper中的所有方法

2.2.2、使用MP中的MybatisSqlSessionFactoryBuilder进程构建

三、Spring + Mybatis + Mybatis-Plus

1、创建子Module

2、添加pom文件

3、编写jdbc.properties

4、编写applicationContext.xml

5、编写User对象以及UserMapper接口

6、编写测试类

四、SpringBoot + Mybatis + Mybatis-Plus

1、创建一个工springboot程

2、添加依赖

3、添加日志文件及配置

4、编写pojo

5、编写mapper

6、编写测试类


一、基础工程

1、创建一个数据库:mp

  1. create database if not exists mp;

2、添加数据

  1. -- 创建测试表
  2. CREATE TABLE `tb_user` (
  3. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  4. `user_name` varchar(20) NOT NULL COMMENT '用户名',
  5. `password` varchar(20) NOT NULL COMMENT '密码',
  6. `name` varchar(30) DEFAULT NULL COMMENT '姓名',
  7. `age` int(11) DEFAULT NULL COMMENT '年龄',
  8. `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  11. -- 插入测试数据
  12. INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES
  13. ('1', 'zhangsan', '123456', '张三', '18', 'test1@itcast.cn');
  14. INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES
  15. ('2', 'lisi', '123456', '李四', '20', 'test2@itcast.cn');
  16. INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES
  17. ('3', 'wangwu', '123456', '王五', '28', 'test3@itcast.cn');
  18. INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES
  19. ('4', 'zhaoliu', '123456', '赵六', '21', 'test4@itcast.cn');
  20. INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES
  21. ('5', 'sunqi', '123456', '孙七', '24', 'test5@itcast.cn');

3、创建初始工程

f755439555164d1d93f23f47ea9caa65.png

4、添加依赖

  1. <dependencies>
  2. <!-- mybatis-plus插件依赖 -->
  3. <dependency>
  4. <groupId>com.baomidou</groupId>
  5. <artifactId>mybatis-plus</artifactId>
  6. <version>3.1.1</version>
  7. </dependency>
  8. <!-- MySql -->
  9. <dependency>
  10. <groupId>mysql</groupId>
  11. <artifactId>mysql-connector-java</artifactId>
  12. <version>5.1.47</version>
  13. </dependency>
  14. <!-- 连接池 -->
  15. <dependency>
  16. <groupId>com.alibaba</groupId>
  17. <artifactId>druid</artifactId>
  18. <version>1.0.11</version>
  19. </dependency>
  20. <!--简化bean代码的工具包-->
  21. <dependency>
  22. <groupId>org.projectlombok</groupId>
  23. <artifactId>lombok</artifactId>
  24. <optional>true</optional>
  25. <version>1.18.4</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>junit</groupId>
  29. <artifactId>junit</artifactId>
  30. <version>4.12</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.slf4j</groupId>
  34. <artifactId>slf4j-log4j12</artifactId>
  35. <version>1.6.4</version>
  36. </dependency>
  37. </dependencies>
  38. <build>
  39. <plugins>
  40. <plugin>
  41. <groupId>org.apache.maven.plugins</groupId>
  42. <artifactId>maven-compiler-plugin</artifactId>
  43. <configuration>
  44. <source>1.8</source>
  45. <target>1.8</target>
  46. </configuration>
  47. </plugin>
  48. </plugins>
  49. </build>

二、Mybatis + Mybatis-Plus

1、创建子工程:mybatis-plus-simple

2、在子工程下添加配置

2.1Mybatis实现查询User

日之文件:log4j.properties

  1. log4j.rootLogger=DEBUG,A1
  2. log4j.appender.A1=org.apache.log4j.ConsoleAppender
  3. log4j.appender.A1.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.A1.layout.ConversionPattern=[%t] [%c]-[%p] %m%n

mybatis-config.xml文件:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"/>
  9. <dataSource type="POOLED">
  10. <property name="driver" value="com.mysql.jdbc.Driver"/>
  11. <property name="url" value="jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false"/>
  12. <property name="username" value="root"/>
  13. <property name="password" value="root"/>
  14. </dataSource>
  15. </environment>
  16. </environments>
  17. <mappers>
  18. <mapper resource="UserMapper.xml"/>
  19. </mappers>
  20. </configuration>
2.1.1、编写User实体对象
  1. package com.mp.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @NoArgsConstructor
  7. @AllArgsConstructor
  8. public class User {
  9. private Long id;
  10. private String userName;
  11. private String password;
  12. private String name;
  13. private Integer age;
  14. private String email;
  15. }
2.1.2、编写UserMapper接口
  1. public interface UserMapper {
  2. List<User> findAll();
  3. }
2.1.3、编写UserMapper.xml文件
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.mp.mapper.UserMapper">
  6. <resultMap id="MappingName" type="com.mp.pojo.User">
  7. <id property="id" column="id"/>
  8. <result property="userName" column="user_name"/>
  9. <result property="password" column="password"/>
  10. <result property="name" column="name"/>
  11. <result property="age" column="age"/>
  12. <result property="email" column="email"/>
  13. </resultMap>
  14. <select id="findAll" resultMap="MappingName">
  15. select * from tb_user
  16. </select>
  17. </mapper>
2.1.4、编写TestMybatis测试
  1. public class TestMybatis {
  2. @Test
  3. public void testUserList() throws Exception{
  4. //读取配置文件
  5. String resource = "mybatis-config.xml";
  6. //加载资源文件。
  7. InputStream inputStream = Resources.getResourceAsStream(resource);
  8. //创建 sqlSessionFactory 工厂
  9. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  10. //创建 SqlSession 对象
  11. SqlSession sqlSession = sqlSessionFactory.openSession();
  12. //获取一个 UserMapper 的实例
  13. UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  14. //调用方法
  15. List<User> list = userMapper.findAll();
  16. for (User user : list) {
  17. System.out.println(user);
  18. }
  19. }
  20. }
2.2Mybatis+MP实现查询User
2.2.1、将UserMapper继承BaseMapper,将拥有了BaseMapper中的所有方法
  1. public interface UserMapper extends BaseMapper<User> {
  2. List<User> findAll();
  3. }
2.2.2、使用MP中的MybatisSqlSessionFactoryBuilder进程构建
  1. public class TestMybatisPlus {
  2. @Test
  3. public void testUserList() throws Exception{
  4. //读取配置文件
  5. String resource = "mybatis-config.xml";
  6. //加载资源文件。
  7. InputStream inputStream = Resources.getResourceAsStream(resource);
  8. //这里使用的是mybatisplus中的MybatisSqlSessionFactoryBuilder
  9. SqlSessionFactory sqlSessionFactory = new MybatisSqlSessionFactoryBuilder().build(inputStream);
  10. //创建 SqlSession 对象
  11. SqlSession sqlSession = sqlSessionFactory.openSession();
  12. //获取一个 UserMapper 的实例
  13. UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  14. // 可以调用BaseMapper中定义的方法
  15. List<User> list = userMapper.selectList(null);
  16. for (User user : list) {
  17. System.out.println(user);
  18. }
  19. }
  20. }

三、Spring + Mybatis + Mybatis-Plus

1、创建子Module

696d1208e82b44d7b462de1cd0689409.png

2、添加pom文件

  1. <properties>
  2. <maven.compiler.source>8</maven.compiler.source>
  3. <maven.compiler.target>8</maven.compiler.target>
  4. <spring.version>5.1.6.RELEASE</spring.version>
  5. </properties>
  6. <dependencies>
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-webmvc</artifactId>
  10. <version>${spring.version}</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.springframework</groupId>
  14. <artifactId>spring-jdbc</artifactId>
  15. <version>${spring.version}</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-test</artifactId>
  20. <version>${spring.version}</version>
  21. </dependency>
  22. </dependencies>

3、编写jdbc.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
  3. jdbc.username=root
  4. jdbc.password=root

4、编写applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd">
  9. <context:property-placeholder location="classpath:*.properties"/>
  10. <!-- 定义数据源 -->
  11. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
  12. destroy-method="close">
  13. <property name="url" value="${jdbc.url}"/>
  14. <property name="username" value="${jdbc.username}"/>
  15. <property name="password" value="${jdbc.password}"/>
  16. <property name="driverClassName" value="${jdbc.driver}"/>
  17. <property name="maxActive" value="10"/>
  18. <property name="minIdle" value="5"/>
  19. </bean>
  20. <!--这里使用MP提供的sqlSessionFactory,完成了Spring与MP的整合-->
  21. <bean id="sqlSessionFactory"
  22. class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
  23. <property name="dataSource" ref="dataSource"/>
  24. </bean>
  25. <!--扫描mapper接口,使用的依然是Mybatis原生的扫描器-->
  26. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  27. <property name="basePackage" value="com.mybatisplus.mapper"/>
  28. </bean>
  29. </beans>

5、编写User对象以及UserMapper接口

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. @TableName("tb_user")
  5. public class User {
  6. private Long id;
  7. private String userName;
  8. private String password;
  9. private String name;
  10. private Integer age;
  11. private String email;
  12. }
  13. public interface UserMapper extends BaseMapper<User> {
  14. }

6、编写测试类

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(locations = "classpath:applicationContext.xml")
  3. public class TestSpringMP {
  4. @Autowired
  5. private UserMapper userMapper;
  6. @Test
  7. public void testSelectList(){
  8. List<User> users = this.userMapper.selectList(null);
  9. for (User user : users) {
  10. System.out.println(user);
  11. }
  12. }
  13. }

在teat下测试可能会读取不到 applicationContext.xml文件,复制一份放在teat目录下即可

52b924ab040740fb9a5b88d476423109.png

四、SpringBoot + Mybatis + Mybatis-Plus

1、创建一个工springboot程

7c2da97266a943acaa1aac101d98bc9c.png

2、添加依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.mysql</groupId>
  8. <artifactId>mysql-connector-j</artifactId>
  9. <scope>runtime</scope>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.projectlombok</groupId>
  13. <artifactId>lombok</artifactId>
  14. <optional>true</optional>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-test</artifactId>
  19. <scope>test</scope>
  20. </dependency>
  21. <!--mybatis-plus的springboot支持-->
  22. <dependency>
  23. <groupId>com.baomidou</groupId>
  24. <artifactId>mybatis-plus-boot-starter</artifactId>
  25. <version>3.1.1</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.slf4j</groupId>
  29. <artifactId>slf4j-log4j12</artifactId>
  30. </dependency>
  31. </dependencies>

3、添加日志文件及配置

log4j.properties:

  1. log4j.rootLogger=DEBUG,A1
  2. log4j.appender.A1=org.apache.log4j.ConsoleAppender
  3. log4j.appender.A1.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.A1.layout.ConversionPattern=[%t] [%c]-[%p] %m%n

编写application.properties文件:

  1. spring.application.name = itcast-mp-springboot
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  3. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
  4. spring.datasource.username=root
  5. spring.datasource.password=root

4、编写pojo

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. @TableName("tb_user")
  5. public class User {
  6. private Long id;
  7. private String userName;
  8. private String password;
  9. private String name;
  10. private Integer age;
  11. private String email;
  12. }

5、编写mapper

  1. public interface UserMapper extends BaseMapper<User> {
  2. }

6、编写测试类

  1. @Autowired
  2. private UserMapper userMapper;
  3. @Test
  4. public void testSelect() {
  5. List<User> userList = userMapper.selectList(null);
  6. for (User user : userList) {
  7. System.out.println(user);
  8. }
  9. }

发表评论

表情:
评论列表 (有 0 条评论,7人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MybatisPlus入门

    MyBatisPlus简介 1.项目肯定要访问数据操作,并且每个domain都有crud,需多次写重复代码。我们使用MybatisPlus,就不用写重复代码,并且还有模板