如何部署mybatis

什么是myBatis

1.MyBatis 是一种开源的持久层框架,它提供了数据库操作的简化和灵活性。它的全名是 MyBatis SQL Mapper(之前称为 iBATIS),是一个用于将 Java 对象与关系数据库之间进行映射的框架。

MyBatis 的主要目标是使开发人员能够更轻松地编写和执行数据库操作,同时提供了较高的灵活性和可定制性。相比于传统的 JDBC 编程,MyBatis 大大简化了数据库访问代码的编写,并且不需要手动编写大量的 SQL 语句。

2.MyBatis 的核心特点包括:

  1. SQL 映射配置:通过 XML 或注解配置 SQL 映射关系,将 SQL 语句与 Java 方法进行绑定,实现数据库操作的自动化。
  2. 灵活的 SQL 语句控制:MyBatis 支持使用动态 SQL、条件判断、循环等,可以根据不同的情况生成不同的 SQL 语句,提高灵活性和可复用性。
  3. 参数绑定和结果映射:MyBatis 提供了参数绑定和结果集映射的功能,可以将查询结果直接映射为 Java 对象或集合。
  4. 缓存支持:MyBatis 内置了一级缓存和二级缓存的支持,可以提高查询的性能和效率。
  5. 事务管理:MyBatis 支持对事务的管理,可通过配置进行事务的提交或回滚。
  6. 插件扩展:MyBatis 提供了插件机制,可以自定义和扩展框架的功能。

3.如何使用myBatis部署项目

        1.下载jar包文件,如果使用的是maven的话,直接导入以下依赖就可以了。

                jar包下载:

Releases · mybatis/mybatis-3 · GitHubMyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.https://github.com/mybatis/mybatis-3/releases                maven依赖:

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        2.编写myBatis的配置文件

                创建mybatis-config.xml文件在resources目录下

              mybatis-config.xml的代码为:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
        <!-- 引入包含数据库连接参数的 database.properties  -->
    <properties resource="database.properties">
        <!-- 1.设置MyBatis 框架的运行时行为 -->
        <!-- 配置 Logback 配置文件的路径 -->
        <property name="logback.configurationFile" value="classpath:logback.xml"/>
    </properties>

    <!-- 配置环境映射数据 -->
    <settings>
        <setting name="autoMappingBehavior" value="FULL"/>
    </settings>
    <typeAliases>
        <!-- 通过映射文件 简化指定文件 -->
        <typeAlias alias="sysuer" type="pojo.T_sysuser"></typeAlias>
        <!-- 通过映射文件 简化整个包的路径 -->
        <package name="pojo"/>
    </typeAliases>

    <!-- 其他配置项 -->

    <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>
        <!-- 如果映射文件较多可以直接导入包路径 -->
        <!-- 比如 <package name="mapper"/> -->
        <!--比如<mapper resource="mapper/administratorMapper.xml"/>-->
    </mappers>
</configuration>

                        在上面的代码中有很多大家需要注意的地方就是:

MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:

  1. 开发环境(Development Environment):用于开发和调试代码的环境。

    • Debugging(调试):提供了调试工具和功能,如断点、变量监视等。
    • Logging(日志记录):允许将运行时信息记录到日志文件中,以便查找问题和分析。
    • Auto-reloading(自动重新加载):在代码修改后自动重新加载应用程序,以加快开发过程。
  2. 测试环境(Testing Environment):用于执行单元测试、集成测试和系统测试的环境。

    • Test Data(测试数据):包含用于测试的数据集合。
    • Test Framework(测试框架):提供了测试工具和断言库,用于编写和执行测试用例。
    • Test Configuration(测试配置):配置文件或设置,用于控制测试环境和行为。
  3. 生产环境(Production Environment):用于部署和运行实际生产系统的环境。

    • Scalability(可扩展性):能够处理高负载和大规模用户访问。
    • Security(安全性):保护数据和系统免受未经授权的访问和攻击。
    • Performance Optimization(性能优化):通过调整配置和优化代码,提高系统的响应速度和资源利用率。
  4. 其他环境属性:

    • Configuration(配置):每个环境都有自己的配置文件,包括数据库连接、密钥、API地址等。
    • Error Handling(错误处理):针对不同环境设置适当的错误处理机制,如显示用户友好的错误信息或记录详细的错误日志。
    • Deployment(部署):每个环境有自己的部署策略和流程,例如使用不同的工具、云平台等。

               

                在mybatis-config.xml中我们可以看到我们添加了database.properties,

其中我们就添加了数据库连接的信息

                 在创建我们的.xml

             

4.编写我们的持久层

                创建我们的mapper接口

                在mybatis-config.xml中我们可以导入映射文件就是我们已经写好的.xml文件

 5.写我们的sql语句

                写方法 

MyBatis的SQL语句包括以下几种类型:

  1. 查询语句(SELECT):用于从数据库中检索数据。

    • 基本查询语句:SELECT * FROM table_name;
    • 条件查询语句:SELECT * FROM table_name WHERE condition;
    • 聚合函数查询语句:SELECT COUNT(column) FROM table_name;
  2. 插入语句(INSERT):用于向数据库中插入新的数据。

    • 基本插入语句:INSERT INTO table_name (column1, column2) VALUES (value1, value2);
    • 批量插入语句:INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);
  3. 更新语句(UPDATE):用于修改数据库中已有数据。

    • 基本更新语句:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
    • 批量更新语句:UPDATE table_name SET column = value WHERE condition;
  4. 删除语句(DELETE):用于从数据库中删除数据。

    • 基本删除语句:DELETE FROM table_name WHERE condition;
    • 删除所有数据语句:DELETE FROM table_name;
  5. 动态SQL:MyBatis提供了强大的动态SQL功能,可以根据条件拼接不同的SQL语句。

    • IF语句:根据条件判断是否包含某段SQL语句;
    • CHOOSE-WHEN-OTHERWISE语句:类似于Java中的switch语句,根据不同条件选择执行不同的SQL语句;
    • FOREACH语句:循环遍历集合或数组,执行重复的SQL语句。

               

                配置封装类,封装mybatis执行代码

                mybatisUtil代码:

package util;

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;

public class MyBatisUtil {
    private static String url="mybatis-config.xml";
    private static InputStream is=null;
    private static SqlSessionFactory sqlSession=null;
    static{
        try {
            // 1.加载mybatis核心配置文件
            is= Resources.getResourceAsStream(url);
            // 2创建SqlSessionFactory对象通过SqlSessionBuild来处理,Build
            sqlSession=new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static SqlSession openSqlSession(){
        return sqlSession.openSession(true);
    }

    public static void closeSqlSession(SqlSession session){
        session.close();
    }
}

                创建测试类测试方法:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值