JAVA EE案例:基于MyBatis注解的学生管理程序
目录
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是一对多的关系。
学生(id) | 学生姓名(name) | 学生年龄(age) | 所属班级(cid) |
1 | 张三 | 18 | 1 |
2 | 李四 | 18 | 2 |
3 | 王五 | 19 | 2 |
4 | 赵六 | 20 | 1 |
班级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注解的学生管理程序相关推荐
- Mr.张小白(案例:基于MyBatis注解的学生管理程序的实现)
基于MyBatis注解的 学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&quo ...
- 基于MyBatis注解的学生管理程序
❤ (ɔˆз(ˆ⌣ˆc)"玥"--乃古上神珠也.见者好运连连,点个关注,咱们来玥方长! (ง •̀_•́)ง加油
- JAVA EE——案例:员工管理系统
目录 1.题目 2.文件目录 3. 引入依赖--pom.xml 4.配置文件--myBatis-config.xml 5.映射文件--EmployeeMapper.xml 6.java类--Emplo ...
- Java课程设计 基于c/s端学生成绩管理系统
java课设选择了学生成绩管理系统,在此记录一下自己做课设的一些想法和问题. 文件源码放在: https://gitee.com/feeling-cool/java-information-syste ...
- mybatis java8_Java 8 开发的 Mybatis 注解代码生成工具
MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...
- 【转】JAVA EE 6 规范综述
目录 1.JAVA EE规范综述 2.JAVA EE整体架构 3.JAVA EE规范的角色划分图 4.JAVA EE平台依赖的J2SE API 5.JAVA EE平台的版本变迁 6.JAVA EE平台 ...
- Java EE 8 MVC:Ozark入门
大约一年前, 针对Java EE 8宣布了一个新的基于动作的MVC框架,简称为MVC. MVC(在JSR 371中指定)基于JAX-RS,并与Java EE技术(如CDI和Bean验证)集成. MVC ...
- JavaSE 和 Java EE 分别是什么
Java 作为最流行的编程语言受到了许多人的喜爱,其在编程中的地位自不必多说. 对于许多才刚刚入门 Java 的朋友来讲,常常会产生这样的困惑,JavaEE是什么?JavaSE又是什么? Java S ...
- java ee学生信息管理_基于jsp的学籍学生信息信息管理系统-JavaEE实现学籍学生信息信息管理系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学籍学生信息信息管理系统, 该项目可用各类java课程设计大作业中, 学籍学生信息信息管理系统的系统架构分为前后台 ...
最新文章
- Java-学习笔记-1-概述
- php虚拟内存设置,虚拟内存有什么用
- 网站架构探索(2)-CDN基本常识 王泽宾
- java中c/s模式传送数据
- 计算机无法使用光驱启动,电脑BIOS怎么设置光盘启动 三种类型BIOS设置光驱启动的图文详解教程...
- 今日头条电脑版官方版_imclass电脑版下载-imclass在线教室pc版下载 v1.0.2 官方版...
- 关系抽取之远程监督算法:别再跟我提知识图谱(下篇)
- Java 将鼠标改为图片的两种方法
- c语言程序游戏例子,C语言游戏编写例子.doc
- mysql explain G_MySQL 性能优化神器 Explain 使用分析
- TortoiseSVN 官网 中文语言包位置
- 计算机教师辞职,(多篇)教师辞职报告汇总八篇
- AutoCAD2006启动慢解决方案
- java发送邮件带图片和附件
- 数据库附加失败解决方法
- html怎么把字做成动画效果,用纯CSS实现文字的动态效果
- 2023手把手教你视频剪辑,学会后不用担心不会剪辑了,不用真人露脸!
- 从零开始完成YOLOv5目标识别(七)一种完成目标计数的简单方法
- 基于树莓派4b的ubuntu20.04mate配合思岚科技A1激光雷达读取数据,建图、保存和基于arduino的下位机控制
- Linux安装aapt问题之libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64