目录

1.题目

2.建表

3.文件目录

4.引入依赖——pom.xml

5.配置文件——mybatis-config.xml

6.SqlSessionUtils.java

7.映射文件

(1)ClassMapper.xml

(2)StudentMapper.xml

8.java类

(1)Class1.java

(2)Student.java

9.接口类

(1)ClassMapper.java

(2)StudentMapper.java

10.测试类——mybatisTest.java

(1)查询id=2的学生信息

(2)将id=4的学生姓名修改为李雷,年龄修改为21

(3)一对多查询出二班所有学生的信息

11.运行结果

(1)查询id=2的学生信息

(2)将id=4的学生姓名修改为李雷,年龄修改为21

修改后的数据库

(3)一对多查询出二班所有学生的信息


1.题目

现有一个学生表s_student(学生id、学生姓名、学生年龄、所属班级)和一个班级表c_class(班级id、班级名称),其中,班级表c_class和学生表s_student是一对多的关系。

表5-1学生表(s_student)
学生(id) 学生姓名(name) 学生年龄(age) 所属班级(cid)
1 张三 18 1
2 李四 18 2
3 王五 19 2
4 赵六 20 1
表5-2班级表(c_class)
班级id(id) 班级名称(classname)
1 一班
2 二班

请使用MyBatis 注解完成以下要求。
(1)MyBatis注解实现查询操作。
根据表5-1和表5-2在数据库分别创建一个学生表s student 和一个班级表class,,并查询id为2的学生的信息
(2)MyBatis 注解实现修改操作。
将id为4的学生姓名修改为李雷,年龄修改为21。
(3)MyBatis注解实现一对多查询。
查询出二班所有学生的信息。

2.建表

-- 学生表
CREATE TABLE s_student(id INT PRIMARY KEY AUTO_INCREMENT, -- 学生idNAME VARCHAR(20),   -- 学生姓名age INT,   -- 学生年龄cid INT -- 所属班级
)ENGINE=MYISAM DEFAULT CHARSET=utf8;;INSERT INTO s_student VALUES(1,'张三',18,1);
INSERT INTO s_student VALUES(2,'李四',18,2);
INSERT INTO s_student VALUES(3,'王五',19,2);
INSERT INTO s_student VALUES(4,'赵六',20,1);

-- 班级表
CREATE TABLE c_class(id INT PRIMARY KEY AUTO_INCREMENT, -- 班级idclassname VARCHAR(20)   -- 班级名称
)ENGINE=MYISAM DEFAULT CHARSET=utf8;;INSERT INTO c_class VALUES(1,'一班');
INSERT INTO c_class VALUES(2,'二班');

3.文件目录

4.引入依赖——pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>demo1</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build><dependencies><dependency><!--Mybatis核心--><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!--junit测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
</project>

5.配置文件——mybatis-config.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="12345678"/></dataSource></environment></environments><mappers><package name="com.gk.mapper"/></mappers>
</configuration>

6.SqlSessionUtils.java

package com.gk.com.gk.utils;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 SqlSessionUtils {public static SqlSession getSqlSession(){SqlSession sqlSession = null;try {InputStream is = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);sqlSession = sqlSessionFactory.openSession(true);} catch (IOException e) {e.printStackTrace();}return sqlSession;}
}

7.映射文件

(1)ClassMapper.xml

<?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.gk.mapper.ClassMapper"><resultMap id="classAndStudentByStepResultMap" type="com.gk.pojo.Class1"><id property="id" column="id"></id><result property="classname" column="classname"></result><collection property="studentList" column="id"ofType="com.gk.pojo.Student"select="com.gk.mapper.StudentMapper.selectStudentByCid"></collection></resultMap><select id="selectStudentByCid" resultMap="classAndStudentByStepResultMap"resultType="com.gk.pojo.Class1">select *from c_classwhere id=#{id}</select>
</mapper>

(2)StudentMapper.xml

<?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.gk.mapper.StudentMapper"><select id="findStudentById" resultType="com.gk.pojo.Student">select * from s_student where id = #{id}</select>
</mapper>

8.java类

(1)Class1.java

package com.gk.pojo;import java.util.List;public class Class1 {private Integer id;private String classname;private List<Student> studentList;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getClassname() {return classname;}public void setClassname(String classname) {this.classname = classname;}public List<Student> getStudentList() {return studentList;}public void setStudentList(List<Student> studentList) {this.studentList = studentList;}@Overridepublic String toString() {return "Class1{" +"id=" + id +", classname='" + classname + '\''+"," + "studentList=" + studentList +'}';}
}

(2)Student.java

package com.gk.pojo;public class Student {private Integer id;private String name;private Integer age;private Integer cid;private Class classId;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getCid() {return cid;}public void setCid(Integer cid) {this.cid = cid;}public Class getClassId() {return classId;}public void setClassId(Class classId) {this.classId = classId;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", cid=" + cid + ",classId=" + classId +'}';}
}

9.接口类

(1)ClassMapper.java

package com.gk.mapper;import com.gk.pojo.Class1;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;public interface ClassMapper {//一对多查询出二班所有学生的信息@Select("select * from c_class where id = #{id}")@Results({@Result(id = true,property = "id",column = "id"),@Result(property = "classname",column = "classname"),@Result(column = "id",property = "studentList",many = @Many(select = "com.gk.mapper.StudentMapper.selectStudentByCid"))})Class1 selectStudentByClass(int id);
}

(2)StudentMapper.java

package com.gk.mapper;import com.gk.pojo.Student;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;public interface StudentMapper {//查询id=2的学生信息@Select("select * from s_student where id = #{id}")Student selectStudentById(int id);//将id=4的学生姓名修改为李雷,年龄修改为21@Update("update s_student set name = #{name},age = #{age} " + "where id = #{id}")int updateStudent(Student student);//一对多查询出二班所有学生的信息@Select("select * from s_student where cid = #{id}")@Results({@Result(id = true,column = "id",property = "id"),@Result(column = "name",property = "name"),@Result(column = "age",property = "age")})List<Student> selectStudentByCid(int cid);
}

10.测试类——mybatisTest.java

(1)查询id=2的学生信息

package com.gk.test;import com.gk.com.gk.utils.SqlSessionUtils;
import com.gk.mapper.StudentMapper;
import com.gk.pojo.Student;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class mybatisTest {SqlSession sqlSession = SqlSessionUtils.getSqlSession();//查询id=2的学生信息@Testpublic void findStudentById() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);Student student = mapper.selectStudentById(2);System.out.println(student.toString());sqlSession.close();}
}

(2)将id=4的学生姓名修改为李雷,年龄修改为21

package com.gk.test;import com.gk.com.gk.utils.SqlSessionUtils;
import com.gk.mapper.StudentMapper;
import com.gk.pojo.Student;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class mybatisTest {SqlSession sqlSession = SqlSessionUtils.getSqlSession();//一对多查询出二班所有学生的信息//将id=4的学生姓名修改为李雷,年龄修改为21@Testpublic void updateStudent() {Student student = new Student();student.setId(4);student.setName("李雷");student.setAge(21);StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);int update = mapper.updateStudent(student);if (update > 0) {System.out.println("成功修改了" + update + "条数据!");} else {System.out.println("修改失败!");}System.out.println(student.toString());sqlSession.commit();sqlSession.close();}
}

(3)一对多查询出二班所有学生的信息

package com.gk.test;import com.gk.com.gk.utils.SqlSessionUtils;
import com.gk.mapper.ClassMapper;
import com.gk.pojo.Class1;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class mybatisTest {SqlSession sqlSession = SqlSessionUtils.getSqlSession();//一对多查询出二班所有学生的信息@Testpublic void selectStudentByClass() {ClassMapper mapper = sqlSession.getMapper(ClassMapper.class);Class1 class1 =mapper.selectStudentByClass(2);System.out.println( class1.toString());sqlSession.close();}
}

11.运行结果

(1)查询id=2的学生信息

(2)将id=4的学生姓名修改为李雷,年龄修改为21

修改后的数据库

(3)一对多查询出二班所有学生的信息

JAVA EE案例:基于MyBatis注解的学生管理程序相关推荐

  1. Mr.张小白(案例:基于MyBatis注解的学生管理程序的实现)

    基于MyBatis注解的 学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&quo ...

  2. 基于MyBatis注解的学生管理程序

    ❤ (ɔˆз(ˆ⌣ˆc)"玥"--乃古上神珠也.见者好运连连,点个关注,咱们来玥方长! (ง •̀_•́)ง加油

  3. JAVA EE——案例:员工管理系统

    目录 1.题目 2.文件目录 3. 引入依赖--pom.xml 4.配置文件--myBatis-config.xml 5.映射文件--EmployeeMapper.xml 6.java类--Emplo ...

  4. Java课程设计 基于c/s端学生成绩管理系统

    java课设选择了学生成绩管理系统,在此记录一下自己做课设的一些想法和问题. 文件源码放在: https://gitee.com/feeling-cool/java-information-syste ...

  5. mybatis java8_Java 8 开发的 Mybatis 注解代码生成工具

    MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...

  6. 【转】JAVA EE 6 规范综述

    目录 1.JAVA EE规范综述 2.JAVA EE整体架构 3.JAVA EE规范的角色划分图 4.JAVA EE平台依赖的J2SE API 5.JAVA EE平台的版本变迁 6.JAVA EE平台 ...

  7. Java EE 8 MVC:Ozark入门

    大约一年前, 针对Java EE 8宣布了一个新的基于动作的MVC框架,简称为MVC. MVC(在JSR 371中指定)基于JAX-RS,并与Java EE技术(如CDI和Bean验证)集成. MVC ...

  8. JavaSE 和 Java EE 分别是什么

    Java 作为最流行的编程语言受到了许多人的喜爱,其在编程中的地位自不必多说. 对于许多才刚刚入门 Java 的朋友来讲,常常会产生这样的困惑,JavaEE是什么?JavaSE又是什么? Java S ...

  9. java ee学生信息管理_基于jsp的学籍学生信息信息管理系统-JavaEE实现学籍学生信息信息管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学籍学生信息信息管理系统, 该项目可用各类java课程设计大作业中, 学籍学生信息信息管理系统的系统架构分为前后台 ...

最新文章

  1. Java-学习笔记-1-概述
  2. php虚拟内存设置,虚拟内存有什么用
  3. 网站架构探索(2)-CDN基本常识 王泽宾
  4. java中c/s模式传送数据
  5. 计算机无法使用光驱启动,电脑BIOS怎么设置光盘启动 三种类型BIOS设置光驱启动的图文详解教程...
  6. 今日头条电脑版官方版_imclass电脑版下载-imclass在线教室pc版下载 v1.0.2 官方版...
  7. 关系抽取之远程监督算法:别再跟我提知识图谱(下篇)
  8. Java 将鼠标改为图片的两种方法
  9. c语言程序游戏例子,C语言游戏编写例子.doc
  10. mysql explain G_MySQL 性能优化神器 Explain 使用分析
  11. TortoiseSVN 官网 中文语言包位置
  12. 计算机教师辞职,(多篇)教师辞职报告汇总八篇
  13. AutoCAD2006启动慢解决方案
  14. java发送邮件带图片和附件
  15. 数据库附加失败解决方法
  16. html怎么把字做成动画效果,用纯CSS实现文字的动态效果
  17. 2023手把手教你视频剪辑,学会后不用担心不会剪辑了,不用真人露脸!
  18. 从零开始完成YOLOv5目标识别(七)一种完成目标计数的简单方法
  19. 基于树莓派4b的ubuntu20.04mate配合思岚科技A1激光雷达读取数据,建图、保存和基于arduino的下位机控制
  20. Linux安装aapt问题之libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64

热门文章

  1. 2021年安全员-C证考试资料及安全员-C证免费试题
  2. 大话西游服务端开服架设服务器搭建教程
  3. clickhouse集群部署方案分析
  4. 开源大数据周刊-第52期
  5. 滤波电容、去耦电容、旁路电容作用及区别
  6. GWAS中的名称概念
  7. python做图像识别该学什么,opencv-python——图像识别入门学习(1)
  8. 2000年悉尼奥运会歌曲《Under Southern Skies》铃声 2000年悉...
  9. 暴雨行人行车遇险自救指南(文字版)
  10. eth入门之工作量证明 (POW)