MyBatis-day-03 和 Maven 构建Java SE 项目
MyBatis
一对多查询
单向多对多之额外 SQL 查询 根据 id 查询学生,并查询其老师。
需要添加 Mapper 接口 和 Mapper XML
StudentMapper 接口
▼java复制代码public interface StudentMapper { Student get(Long id); }
StudentMapper.xml 文件
▼xml复制代码<resultMap type="Student" id="baseResultMap"> <id column="id" property="id"/> <result column="name" property="name"/> <!-- 关联属性,让 MyBatis 发额外 SQL --> <collection select="cn.wolfcode.mapper.TeacherMapper.queryByStudentId" column="id" property="teachers"/> </resultMap> <select id="get" resultMap="baseResultMap"> SELECT id, name FROM student WHERE id = #{id} </select>
TeacherMapper
▼java复制代码package xxx.xxx.mapper; public interface queryByStudentId { Teacher get(Long id); }
TeacherMapper.xml 文件
▼xml复制代码<select id="queryByStudentId" resultType="Teacher"> SELECT t.id, t.name FROM teacher_student ts JOIN teacher t ON ts.teacher_id = t.id WHERE ts.student_id = #{studentId} </select>
单元测试方法
▼java复制代码public class Many2oneTest { @Test public void testGet() throws Exception { SqlSession session = MyBatisUtil.getSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = studentMapper.get(2L); System.out.println(student); session.close(); } }
多对多查询
多对多映射关系 什么是多对多关系: 一对多关系就是表A中一条数据对应表B中的多条数据,例如,用户和订单之间的关系,一个用户可以有多个订单信息。
在mybatis中,与一对多映射一致,我们通过resultMap元素的子元素 collection来进行处理。
需要注意的是:在一对多映射和多对多映射中,collection 元素属行中使用的是ofType属性来指定实体对象,而不是使用JavaType属性。
resultType
作用:将查询结果按照sql列名pojo属性名一致性映射到pojo中。 场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。 resultMap
使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。
association:
作用:将关联查询信息映射到一个pojo对象中。 场合:为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,比如:查询订单及关联用户信息。 使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。
collection:
作用:将关联查询信息映射到一个list集合中。 场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。如果使用resultType无法将查询结果映射到list集合中。
Maven
maven 导入的jar包具有传递性,会自动导入该jar包需要的其他jar包
安装Maven及配置相关文件,环境变量
安装
访问 Maven 的官方网站:https://maven.apache.org/。
下载 Maven 的二进制发行版(Binary zip archive),选择最新版本并下载。
解压下载的二进制发行版到你选择的安装目录,例如 C:\Program Files\apache-maven-3.x.x(Windows)或 /usr/local/apache-maven-3.x.x(Linux/Mac)
配置环境变量
-
右键点击 "此电脑"(或 "计算机"),然后选择 "属性"。
-
在左侧面板中,点击 "高级系统设置"。
-
在 "系统属性" 对话框中,点击 "环境变量" 按钮。
-
在 "系统变量" 部分,找到 "Path" 变量,然后点击 "编辑"。
-
在 "编辑环境变量" 对话框中,点击 "新建",并添加 Maven 的 bin 目录路径,例如 C:\Program Files\apache-maven-3.x.x\bin。
-
点击 "确定" 关闭所有对话框。
配置第三方中央仓库
在maven 安装目录下打开 settings.xml 文件。
在<repositories>元素中,你可以配置自定义的仓库。
▼xml复制代码<repositories> <repository> <id>myrepository</id> <url>http://your-custom-repository-url.com</url> </repository> </repositories> 这里,<id> 是自定义仓库的唯一标识符,<url> 是仓库的地址。你可以添加多个自定义仓库。
保存settings.xml 文件。
在IDEA中使用Maven 构建JAVA SE 项目
-
打开 IntelliJ IDEA。
-
创建一个新的 Java 项目或打开现有的项目。
-
在项目的根目录中,你可以看到一个 pom.xml 文件,这是 Maven 项目的配置文件。确保该文件存在。
-
打开 IntelliJ IDEA 的项目设置:
-
在 Windows 上,点击 "File" > "Settings"。
-
在左侧面板中,选择 "Build, Execution, Deployment"(构建、执行、部署)。
-
在右侧窗格中,选择 "Build Tools"(构建工具)下的 "Maven"。
-
在 "Maven home directory"(Maven 安装目录)字段中,选择 Maven 安装的目录,例如 C:\Program Files\apache-maven-3.x.x(Windows)或 /usr/local/apache-maven-3.x.x(Linux/Mac)。
-
点击 "Apply" 和 "OK" 以保存设置。
-
IntelliJ IDEA 现在将使用 Maven 来构建和管理你的 Java 项目。
-
你可以在 IntelliJ IDEA 的 Maven 工具窗口中执行 Maven 构建任务,例如 clean, install 等。打开 Maven 工具窗口的方式是点击底部的 "Maven" 标签或在 "View" > "Tool Windows" 中选择 "Maven"。

