mybatis 的快速入门以及基于spring boot整合mybatis

MyBatis基础

MyBatis是一款非常优秀的持久层框架,用于简化JDBC的开发

准备工作:
   1,创建sprong boot工程,引入mybatis相关依赖
   2,准备数据库表User,实体类User
   3, 配置MyBatis(在application.properties中数据库连接信息)
   4,编写Mybatis程序:编写MyBatis的持久层接口,定义SQL(注解/XML)

创建spring boot工程,并且引入相关的依赖。

1,在自己的工程下右击,然后点击new,选择module。

mybatis 的快速入门以及基于spring boot整合mybatis_第1张图片

选择:spring Initializr 右边的配置根据自己情况选择。

mybatis 的快速入门以及基于spring boot整合mybatis_第2张图片

选择spring boot的版本和要添加的依赖,最后点击创建。

mybatis 的快速入门以及基于spring boot整合mybatis_第3张图片

查看pom文件

mybatis 的快速入门以及基于spring boot整合mybatis_第4张图片

         
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            3.0.3
        
        
            mysql
            mysql-connector-java
            8.0.31
        
        
            com.alibaba
            druid-spring-boot-starter
            1.2.11
        

        
            org.projectlombok
            lombok
            true
        

2,准备数据库库表user

create table user(
    id int unsigned primary key auto_increment comment 'ID,主键',
    username varchar(20) comment '用户名',
    password varchar(32) comment '密码',
    name varchar(10) comment '姓名',
    age tinyint unsigned comment '年龄'
) comment '用户表';

insert into user(id, username, password, name, age) values (1, 'daqiao', '123456', '大乔', 22),
                                                           (2, 'xiaoqiao', '123456', '小乔', 18),
                                                           (3, 'diaochan', '123456', '貂蝉', 24),
                                                           (4, 'lvbu', '123456', '吕布', 28),
                                                           (5, 'zhaoyun', '12345678', '赵云', 27);

和实体类User


@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Integer age;
}

3,在application.properties配置文件中添加连接数据库的配置。

mybatis 的快速入门以及基于spring boot整合mybatis_第5张图片

#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
spring.datasource.username=root
spring.datasource.password=root

4,编写程序测试:

在com.sde包下创建子包mapper包,并创建一个UserMapper接口

mybatis 的快速入门以及基于spring boot整合mybatis_第6张图片

mapper接口的代码:
@Mapper
public interface UserMapper {

    /**
     * 根据用户名查询
     * @param username
     * @return
     */
    @Select("select * from user where username = #{username}")
    public User getByUsername(String username);

    /**
     * 查询全部用户
     * @return
     */
    @Select("select id, username, password, name, age from user")
    public List selectAll();

    /**
     * 根据id删除
     * @param id
     */
    @Delete("delete from user where id = #{id}")
    public void delUser(Integer id);

    /**
     * 根据id修改用户信息
     * @param user
     */
    @Update("update user set username = #{username},password = #{password},name = #{name},age = #{age} where id = #{id}")
    public void updateUser(User user);

    /**
     * 添加用户信息
     * @param user
     */
    @Insert("insert into user values(null,#{username},#{password},#{name},#{age})")
    public void addUser(User user);

}
在test类中测试

mybatis 的快速入门以及基于spring boot整合mybatis_第7张图片

代码:

   @Autowired
    private UserMapper2 userMapper;

    @Test
    @DisplayName("测试查询全部")
    public void testSelectAll(){
        List userList = userMapper.selectAll();
        userList.forEach(e -> System.out.println(e));
    }

    @Test
    @DisplayName("测试删除")
    public void testDel(){
        userMapper.delUser(8);
    }

    @Test
    @DisplayName("测试修改")
    public void testUpdate(){
        userMapper.updateUser(new User(7,"wxx","111","王星星",20));
    }

    @Test
    @DisplayName("测试添加")
    public void testAdd(){
        userMapper.addUser(new User(null,"java","111222","Java开发",55));
    }

    @Test
    @DisplayName("测试根据用户名查询")
    public void testGetByUsername(){
        User user = userMapper.getByUsername("daoen");
        System.out.println(user);
    }

辅助配置:
语法提示配置
  • 在写mysql语句的行,右击找到 Show Context Action。
  • 然后点击,inject language for reference。
  • 找到MySQL点击确定。
  • 当已经配置过这个语法提示的时候,在点击Show Context Action,会出现 Uninject language for reference。点击一下就去掉了语法提示。在重复上面的步骤,添加即可。

mybatis 的快速入门以及基于spring boot整合mybatis_第8张图片

然后找到 inject language for reference

mybatis 的快速入门以及基于spring boot整合mybatis_第9张图片

选择MySQL 双击即可。

mybatis 的快速入门以及基于spring boot整合mybatis_第10张图片

 看这里代码颜色就不一样了。

mybatis 的快速入门以及基于spring boot整合mybatis_第11张图片

如果已经配置,在SQL语句上面右击,会出现  Uninject language for reference。点击这个就去掉了。

mybatis 的快速入门以及基于spring boot整合mybatis_第12张图片

看效果:SQL语句全部变成了绿色。就去掉了

 mybatis 的快速入门以及基于spring boot整合mybatis_第13张图片

日志输出:

默认情况下,我们在mybatis中SQL语句执行时,我们看不到SQL语句执行的日志,配置一下配置,就可以看到在控制台输出的sql语句提示了。

在application.properties 配置文件中。添加 一面代码就行

#mybatis 的日志信息 -- 输出控制台 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl



#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sde01
spring.datasource.username=root
spring.datasource.password=root


#mybatis 的日志信息  -- 输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

 JDBC VS Mybatis  对比

看图说话

mybatis 的快速入门以及基于spring boot整合mybatis_第14张图片

mybatis相比于jdbc可以很好的操作数据库并且能够简化代码开发。所以我们在以后项目和开发中,选取的是mybatis。

数据库连接池

  • 1,数据库连接池是一个容器,负责分配、管理数据库连接(Connection)。
  • 2,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
  • 3,释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。

mybatis 的快速入门以及基于spring boot整合mybatis_第15张图片

优势:

​ 资源重用 ​

提升系统响应速度

​ 避免数据库连接遗漏 ​

标准接口:DataSource ​

官方(sun)提供的数据库连接池接口,由第三方组织实现此接口。

功能:获取连接 ​ Connection getConnection() throws SQLException;

常见产品:

mybatis 的快速入门以及基于spring boot整合mybatis_第16张图片

Druid(德鲁伊) ​

  • 功能强大,性能优秀,是Java语言最好的数据库连接池之一
  • Druid连接池是阿里巴巴开源的数据库连接池项目

spring boot默认使用的是 Hikari连接池

mybatis 的快速入门以及基于spring boot整合mybatis_第17张图片

通过上面的图片,我们可以看到,即便我们没有配置数据库连接池,也是有数据库连接池的。是spring boot默认自带的连接池(Hikari 追光者) 

现在我们配置我们的国产数据库连接池 Druid数据库连接池。

先引入依赖:

        
            com.alibaba
            druid-spring-boot-starter
            1.2.11
        

在application.propertise 配置文件里面配置

mybatis 的快速入门以及基于spring boot整合mybatis_第18张图片

配置的代码信息:

#配置druid连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
spring.datasource.username=root
spring.datasource.password=root

xml映射配置

在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句。

规则:

  • ​ 1,XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。
  • 2,XML映射文件的namespace属性为Mapper接口全限定名一致。
  • 3,XML映射文件中sql语句的id与Mapper 接口中的方法名一致,并保持返回类型一致。

1,同包同名:

在resource是目录下,右击点击new然后选择Directory

mybatis 的快速入门以及基于spring boot整合mybatis_第19张图片

切记在Directory里面,不是以逗号分割,而是用/分割。因为在电脑中,不同级别的目录,是/分开的,不是点。

这是一个错误的示范:

mybatis 的快速入门以及基于spring boot整合mybatis_第20张图片

下面这个是正确的示范:

 mybatis 的快速入门以及基于spring boot整合mybatis_第21张图片

 点击回车就创建成功了。

刚创建好长这样,下面添加一个和UserMapper,同名的xml文件

mybatis 的快速入门以及基于spring boot整合mybatis_第22张图片

 然后就创建成功了。

mybatis 的快速入门以及基于spring boot整合mybatis_第23张图片

xml根标签






 2,namespace属性为Mapper接口全限定名一致

右击UserMapper接口,点击 Copy Path/Refernence

mybatis 的快速入门以及基于spring boot整合mybatis_第24张图片

接着点击  copy Reference

 mybatis 的快速入门以及基于spring boot整合mybatis_第25张图片

最后粘贴到 刚刚创建的UserMapper.xml 配置文件中的namespace里面

mybatis 的快速入门以及基于spring boot整合mybatis_第26张图片

3,sql语句的id与Mapper 接口中的方法名一致

在UserMapper接口里面 

mybatis 的快速入门以及基于spring boot整合mybatis_第27张图片

在xml文件里面

mybatis 的快速入门以及基于spring boot整合mybatis_第28张图片

 






    
    

在service包下面编写UserService接口

mybatis 的快速入门以及基于spring boot整合mybatis_第29张图片

 在service包里面,在创建一个子包,impl包,并创建UserServiceImpl这个实现类

mybatis 的快速入门以及基于spring boot整合mybatis_第30张图片

 在controller包中编写 UserController 

mybatis 的快速入门以及基于spring boot整合mybatis_第31张图片

 启动项目,在Apifox里面测试

mybatis 的快速入门以及基于spring boot整合mybatis_第32张图片

看控制台的输出

mybatis 的快速入门以及基于spring boot整合mybatis_第33张图片

 

MyBatisX:

是一款基于 IDEA 的快速开发Mybatis的插件,为效率而生。

mybatis 的快速入门以及基于spring boot整合mybatis_第34张图片

安装:

点击 file然后点击settings 找到 plugs搜索要下载的插件,然后点击install。

因为我是之前就下载好的,所以页面提示让我更新。没有安装过的话,会先让安装。

mybatis 的快速入门以及基于spring boot整合mybatis_第35张图片

 安装好之后,就会发现我们的页面左侧就多了一个小鸟的标记。

mybatis 的快速入门以及基于spring boot整合mybatis_第36张图片

安装好mybatisX插件之后,会发现我们在接口里面定义好方法,如果还没有写SQL语句,他会有一个红色的波浪线提示我们。

在红色波浪线处,右击就会出现这个页面。

点击 Generate statement 

mybatis 的快速入门以及基于spring boot整合mybatis_第37张图片 然后它就会在UserMapper.xml配置文件中生成一个标签。

mybatis 的快速入门以及基于spring boot整合mybatis_第38张图片

 

 点击这边的小鸟,可以跳转到绑定的类或者对应接口的方法。

mybatis 的快速入门以及基于spring boot整合mybatis_第39张图片

你可能感兴趣的:(java技术成才之路,数据库相关,mybatis,spring,boot,后端)