Spring&Springboot整合Mybatis

Mybatis基本开发

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC
代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的
POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

看完上面的介绍那我们使用java的编程方式来看一下Mybatis的基本开发吧
Mybatis的特点

Mybatis是一个ORM类型框架,解决的数据库访问和操作的问题,对现有JDBC技术的封装。
简单 : mybatis框架不依赖于任何第三方的功能jar, 只需要一个核心的功能jar就能使用mybatis开发。
灵活 : mybatis操作数据库的sql语句是书写在xml配置文件中, 非常利于sql语句的调优和维护修改。

工具的版本

  • JDK8
  • IDEA2023.1
  • Maven3.6.3
  • Mysql-jar5.1.48 版本-5.7
  • Mybatis3.4.6

搭建开发环境(Spring整合)

  • 准备jar
   <dependencies>
       <!--mybatis-->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.4.6</version>
       </dependency>
       <!--mysql-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.48</version>
       </dependency>
       <!--junit-->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <scope>test</scope>
       </dependency>
   </dependencies>

2.准备配置文件
2.1基本配置文件mybatis-config.xml

  • 数据源设置
  • 在这里插入图片描述
  • 类别别名
    在这里插入图片描述
  • Mapper文件注册
  • 在这里插入图片描述
<?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>
    <typeAliases>
        <typeAlias type="com.bugz.entity.User" alias="User"/>
    </typeAliases>
	
    <environments default="default">
        <environment id="default">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/bugz?useSSL=false"></property>
                <property name="username" value="root"></property>
                <property name="password" value="123456"></property>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--<package name=""-->
        <mapper resource="UserDAOMapper.xml"/>
    </mappers>
</configuration>

2.2Mapper文件

  • DAO规定方法的实现—>SQL语句
<?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">
<mapper namespace="com.bugz.dao.UserDAO">
   <select id="queryAllUser" resultType="User">
       select id,name from user;
   </select>
</mapper>

3.初始化配置
完成上述的配置
开发步骤(7步)

  1. entity
public class User implements Serializable {
   private Integer id;
   private String name;
   private Integer version;
}
  1. 类型别名
    在这里插入图片描述
  2. table
    在这里插入图片描述
  3. DAO接口
public interface UserDAO {
 List<User> queryAllUser();
}
  1. Mapper文件
<mapper namespace="com.bugz.dao.UserDAO">
   <select id="queryAllUser" resultType="User">
       select id,name from user;
   </select>
</mapper>
  1. Mapper文件的注册
 <mappers>
     <!--<package name=""-->
     <mapper resource="UserDAOMapper.xml"/>
 </mappers>
  1. API编程
    @Test
    public void Test01() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDAO userDAO = sqlSession.getMapper(UserDAO.class);
        List<User> list = userDAO.queryAllUser();
        for (User u : list) {
            System.out.println("u = " + u);
        }
    }

搭建开发环境(SpringBoot整合)
工具的版本

  • JDK8
  • IDEA2023.1
  • Maven3.6.3
  • Mysql-jar5.1.48 版本-5.7
  • mybatis-spring-boot-starter 2.3.1
  • SpringBoot2.7.1
    准备jar包
 	<parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.7.1</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

在application.yml文件中编写配置

#数据源
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/bugz?useSSL=false
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
#类型别名&mapper文件
mybatis:
  type-aliases-package: com.bugz.entity
  mapper-locations: classpath:mappers/*.xml

编写SpringBoot启动类&添加相关注解

一定要加上@MapperScan注解,是用来扫描Dao接口的注解,还要在每一个dao接口上加上@Repository这个注解
@SpringBootApplication
@MapperScan(value = "com.bugz.dao")
public class SpringMabatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringMabatisApplication.class,args);
    }
}
@Repository
public interface UserDAO {
    List<User> queryAllUser();
}

注入测试

@SpringBootTest(classes = SpringMabatisApplication.class)
@RunWith(SpringRunner.class)
public class TestMybatis {
    @Autowired
    private UserDAO userDAO;
    @Test
    public void Test01(){
        List<User> users = userDAO.queryAllUser();
        for (User user : users) {
            System.out.println("user = " + user);
        }
    }
}

接下来小编会学习整理Mybatis的源码,如果感兴趣的话关注一下小编吧!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值