MyBatis动态查询

1.问:Mybatis是什么?

   AI答:

MyBatis 是一个开源的持久层框架,它主要解决了传统 JDBC 开发过程中的大量样板代码和繁琐的参数处理问题MyBatis 通过 XML 或注解的方式将 SQL 语句与 Java 对象进行映射,提供了一种优雅的持久化解决方案。

使用 MyBatis,开发人员可以通过简单的配置文件或注解来定义 SQL 映射关系,将 Java 对象和数据库表进行映射,避免了手动编写大量的 SQL 查询语句和结果集映射代码。同时,MyBatis 提供了灵活的 SQL 拼接、动态 SQL、参数处理等功能,可以满足各种复杂的查询需求。

总的来说,MyBatis 简化了数据库访问的过程,提高了开发效率,同时也降低了程序的维护成本。因此,MyBatis 在 Java 开发领域得到了广泛的应用和认可。

2.问:Mybatis的基本结构?

   AI答:

MyBatis 是一个持久层框架,它的基本结构包括以下几个重要部分:

1. SqlMapConfig.xml:这是 MyBatis 的配置文件,用于配置 MyBatis 的全局属性,数据源信息,以及映射文件等。

2. Mapper 接口:Mapper 接口是 Java 接口,用于定义 SQL 映射语句的方法。Mapper 接口中的方法通常与 XML 映射文件中的 SQL 语句相对应。

3. Mapper.xml:Mapper.xml 文件是 SQL 映射文件,用于定义 SQL 语句和映射规则。在 Mapper.xml 文件中可以定义 SQL 查询、更新、插入、删除等操作。

4. SqlSessionFactory:SqlSessionFactory 是 MyBatis 的核心接口,用于创建 SqlSession 对象。SqlSessionFactoryBuilder 用于构建 SqlSessionFactory 对象,而 SqlSession 则用于执行 SQL 增删改查操作。

5. 实体类:实体类对应数据库中的表结构,通过实体类与数据库表进行映射。

这些是 MyBatis 的基本结构组成部分,通过配置文件、Mapper 接口、Mapper.xml 文件、SqlSessionFactory 和实体类等组件,可以实现数据库操作的映射和执行。

以下为官网找的代码入门_MyBatis中文网

<?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="org.mybatis.example.BlogMapper">
    <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
    </select>
</mapper>

案例:查询学生选课记录的动态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.example.mapper.StudentCourseMapper">
    <select id="selectAll" resultType="com.example.entity.StudentCourse">
        select * from student_course
        <where>
            <if test="name != null">and name like concat('%', #{name}, '%')</if>>
            <if test="no != null">and no like concat('%', #{no}, '%')</if>
            <if test="studentId != null">and student_id = #{studentId}</if>
        </where>>
        order by id desc
    </select>
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值