Springboot使用Mybatis

1.Mybatis

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。

以下是 MyBatis 的一些主要特点:

  • SQL 与 Java 代码分离:MyBatis 允许你将 SQL 语句写在 XML 文件中,这使得 SQL 语句的管理和维护更加容易。
  • 支持定制化 SQL:MyBatis 提供了强大的动态 SQL 功能,允许你根据参数的不同值来生成不同的 SQL 语句。
    映射灵活:MyBatis 支持一对一、一对多、多对一、多对多等复杂的映射关系。
  • 支持存储过程:MyBatis 支持存储过程的调用。
  • 支持事务管理:MyBatis 支持事务管理,允许你使用 Spring 或其他事务管理器进行事务管理。
  • 支持多种数据库:MyBatis 支持多种数据库,如 MySQL、Oracle、SQL Server、SQLite 等。
    使用 MyBatis,开发者可以更加专注于 SQL 语句的编写和优化,而不需要花费太多时间在 JDBC 的繁琐操作上。同时,MyBatis 的强大映射功能也使得数据库和 Java 对象之间的转换变得非常简单。

    2.Springboot使用Mybatis

    2.1 引入环境

    在build.gradle文件中加入:

    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1'

    2.2 编写配置文件

    编写mybatis.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="mysql">
    
        <environment id="mysql">
    
            <!-- 使用JDBC事务管理器,目前由MyBatis管理 -->
            <transactionManager type="JDBC"/>
    
            <!-- 配置DataSource标准数据源,目前由MyBatis管理 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost/test?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="ae23e"/>
            </dataSource>
    
        </environment>
    
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"></mapper>
    </mappers>
    </configuration>

## 2.3 导入配置及编写工具类
在util包中新建MybatisUtils.java:

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 MybatisUtils {

private static SqlSessionFactory sqlSessionFactory;

static {
    try {
        //使用Mybatis第一步: 获取sqlSessionFactory对象
        String resource = "mybatis.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

//既然有了 SqlSessionFactory,我们可以从中获得 SqlSession 的实例。
//sqlSession 完全包含了面向数据库执行SQL命令所需的所有方法
public static SqlSession getSqlseesion() {
    // SqlSession = sqlSessionFactory.openSession();
    return sqlSessionFactory.openSession();
}

}

## 2.4 创建mapper.xml文件编写SQL
例如UserMapper.xml:
* id:返回的是所有对象的Map集合,resultType:每个对象是com.example.videoplay.entity.User类
* namespace对应的是下面的UserMapper.java接口:com.example.videoplay.mapper.UserMapper

<?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.example.videoplay.mapper.UserMapper">
<select id="findUserList" resultType="com.example.videoplay.entity.User">
select from user
</select>
<select id="getById" resultType="com.example.videoplay.entity.User">
select
from user where id = #{id}
</select>
</mapper>

## 2.5 创建UserMapper的函数接口
UserMapper.java的函数接口:

import com.example.videoplay.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@Mapper
public interface UserMapper {
public User getById(Integer id);
public List<User> findUserList();
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇