mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法

简介: 当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。

在Java的MyBatis框架中,sqlmapconfig.xml 是框架的核心配置文件,其中配置了MyBatis的全局属性和数据库连接信息,同时也定义了映射器(Mapper)XML文件的路径,映射器XML文件中则包含了具体的数据库操作语句,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)等操作。

全局配置(sqlmapconfig.xml)的基本结构:

在全局配置文件中,您通常会配置环境(包括数据源和事务管理器)和映射器文件的路径。

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="数据库驱动"/>
                <property name="url" value="数据库连接URL"/>
                <property name="username" value="数据库用户名"/>
                <property name="password" value="数据库密码"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="路径/YourMapper.xml"/>
    </mappers>
</configuration>

映射器(Mapper)XML文件:

映射器XML文件中定义了操作数据库的具体SQL语句。以下是一些基础的用法。

  1. Insert语句 - 用于将数据插入到数据库中。
<mapper namespace="com.example.mapper.YourMapper">
    <insert id="insertYourEntity" parameterType="YourEntity">
        INSERT INTO your_table_name (column1, column2, ...)
        VALUES (#{property1}, #{property2}, ...)
    </insert>
</mapper>
  1. Delete语句 - 用于从数据库中删除数据。
<mapper namespace="com.example.mapper.YourMapper">
    <delete id="deleteYourEntity" parameterType="int">
        DELETE FROM your_table_name WHERE id = #{id}
    </delete>
</mapper>
  1. Update语句 - 用于更新数据库中的数据。
<mapper namespace="com.example.mapper.YourMapper">
    <update id="updateYourEntity" parameterType="YourEntity">
        UPDATE your_table_name SET column1 = #{property1}, column2 = #{property2}, ...
        WHERE id = #{id}
    </update>
</mapper>
  1. Select语句 - 用于从数据库中查询数据。
<mapper namespace="com.example.mapper.YourMapper">
    <select id="selectYourEntity" parameterType="int" resultType="YourEntity">
        SELECT * FROM your_table_name WHERE id = #{id}
    </select>
    <select id="selectAllYourEntities" resultType="YourEntity">
        SELECT * FROM your_table_name
    </select>
</mapper>

在上述映射器文件中,namespace 指的是对应的Mapper接口的路径,id 对应Mapper接口中的方法名称,parameterType 指的是传入的参数类型,resultType 指的是查询操作返回的结果类型。在SQL语句中,#{property} 用于从传入的参数中取出相应的属性值。

用法:

在应用程序中,您会拥有对应的Mapper接口定义:

public interface YourMapper {
    void insertYourEntity(YourEntity yourEntity);

    void deleteYourEntity(int id);

    void updateYourEntity(YourEntity yourEntity);

    YourEntity selectYourEntity(int id);

    List<YourEntity> selectAllYourEntities();
}

您会在MyBatis的配置文件中关联这个接口和映射器XML文件。这样,当您在应用程序中调用接口方法时,MyBatis会自动找到映射器XML文件中定义的SQL语句并执行。

为了和数据库交互,您会使用MyBatis提供的 SqlSession 对象,这可以是通过 SqlSessionFactory 获得的。

SqlSession sqlSession = sqlSessionFactory.openSession();
YourMapper yourMapper = sqlSession.getMapper(YourMapper.class);
YourEntity yourEntity = yourMapper.selectYourEntity(1);
sqlSession.commit();
sqlSession.close();

这种设计将SQL语句管理与应用程序的业务逻辑分离,增强了代码的可维护性和可测试性。您能够通过简单的接口方法调用来执行复杂的数据库操作,而不用关心底层的SQL细节,这是MyBatis框架强大而受欢迎的原因之一。

当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。

目录
相关文章
|
14天前
|
SQL XML Java
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
2月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
33 5
|
2天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
7 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2天前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
26天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
14天前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
2月前
|
Java 数据库连接 测试技术
SpringBoot 3.3.2 + ShardingSphere 5.5 + Mybatis-plus:轻松搞定数据加解密,支持字段级!
【8月更文挑战第30天】在数据驱动的时代,数据的安全性显得尤为重要。特别是在涉及用户隐私或敏感信息的应用中,如何确保数据在存储和传输过程中的安全性成为了开发者必须面对的问题。今天,我们将围绕SpringBoot 3.3.2、ShardingSphere 5.5以及Mybatis-plus的组合,探讨如何轻松实现数据的字段级加解密,为数据安全保驾护航。
117 1
|
2月前
|
Web App开发 前端开发 关系型数据库
基于SpringBoot+Vue+Redis+Mybatis的商城购物系统 【系统实现+系统源码+答辩PPT】
这篇文章介绍了一个基于SpringBoot+Vue+Redis+Mybatis技术栈开发的商城购物系统,包括系统功能、页面展示、前后端项目结构和核心代码,以及如何获取系统源码和答辩PPT的方法。
|
2月前
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。
|
1月前
|
Java 数据库连接 开发者
MyBatis-Plus整合SpringBoot及使用
MyBatis-Plus为MyBatis提供了强大的增强,使得在Spring Boot项目中的数据访问层开发变得更加快捷和简便。通过MyBatis-Plus提供的自动CRUD、灵活的查询构造器和简洁的配置,开发者
39 0