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 mapperPUBLIC "-//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 mapperPUBLIC "-//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>