1.在mysql中创建表
SET FOREIGN_KEY_CHECKS=0;
--创建表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` varchar(40) NOT NULL DEFAULT '' COMMENT 'UUID,唯一标识',
`id` int(10) DEFAULT NULL COMMENT '学生编号',
`name` varchar(20) DEFAULT NULL COMMENT '学生姓名',
`password` varchar(20) DEFAULT NULL COMMENT '学生密码',
`age` int(3) unsigned DEFAULT NULL COMMENT '学生年龄',
`sex` varchar(2) DEFAULT NULL COMMENT '学生性别',
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--在表中添加数据
INSERT INTO `student` VALUES ('9577f4badff2443e9e67bcc63b640341', '1005', 'KID', '12345', '20', '女');
INSERT INTO `student` VALUES ('9577f4badff2443e9e67bcc63b640342', '1001', '张三', '1235', '12', '女');
INSERT INTO `student` VALUES ('c93bbe3c69ed4cbeb07a2a06ccb97612', '1002', '李四', '1235', '30', '男');
INSERT INTO `student` VALUES ('db7d44de97e1418d95fd73a77b9a9b0c', '1003', '王五', '1235', '12', '女');
INSERT INTO `student` VALUES ('fjakslfk349rhrksar4', '1004', '赵六', '1235', '25', '男');
2.在IDEA下创建Maven项目并创建与表对应的实体类
3. 引入Mybatis框架
mybatis – MyBatis 3 | 简介https://mybatis.org/mybatis-3/zh/index.html
往Maven项目添加Mybatis依赖的包,pom.xml如下所示
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--引入外部配置文件-->
<properties resource="config.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/next/service/StudentServiceImp.xml"/>
</mappers>
</configuration>
添加控制层,项目userinfoMapperStudentService.xml配置内容如下:
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.next.service.StudentService">
<!--添加学生信息-->
<insert id="insertStudent" parameterType="com.kid.pojo.Student">
insert into task.student (sid, id, name, password, age, sex)
values (#{sid}, #{id}, #{name}, #{password}, #{age}, #{sex})
</insert>
<!--删除学生信息-->
<!--根据Sid删除学生-->
<delete id="deleteStudentBySid" parameterType="String">
delete
from task.student
where sid = #{sid}
</delete>
<!--根据id删除学生-->
<delete id="deleteStudentById" parameterType="int">
delete
from task.student
where id = #{id}
</delete>
<!--根据name删除学生-->
<delete id="deleteStudentByName" parameterType="String">
delete
from task.student
where name = #{name}
</delete>
<!--根据age删除学生-->
<delete id="deleteStudentByAge" parameterType="int">
delete
from task.student
where age = #{age}
</delete>
<!--根据sex删除学生-->
<delete id="deleteStudentBySex" parameterType="String">
delete
from task.student
where sex = #{sex}
</delete>
<!--修改学生信息-->
<update id="updateStudent" parameterType="com.kid.pojo.Student">
update task.student
set sid = #{sid} ,id=#{id}, name =#{name}, password=#{password}, age=#{age}, sex=#{sex}
where sid=#{sid};
</update>
<!--查找学生信息-->
<!--查找所有学生-->
<select id="getStudentAll" resultType="com.kid.pojo.Student">
select *
from task.student
</select>
<!--根据sid查找学生-->
<select id="getStudentBySid" parameterType="String" resultType="com.kid.pojo.Student">
select *
from task.student
where sid = #{sid}
</select>
<!--根据id查找学生-->
<select id="getStudentById" parameterType="int" resultType="com.kid.pojo.Student">
select *
from task.student
where id = #{id}
</select>
<!--根据name查找学生-->
<select id="getStudentByName" parameterType="String" resultType="com.kid.pojo.Student">
select *
from task.student
where name = #{name}
</select>
<!--根据age查找学生-->
<select id="getStudentByAge" parameterType="int" resultType="com.kid.pojo.Student">
select *
from task.student
where age = #{age}
</select>
<!--根据sex查找学生-->
<select id="getStudentBySex" parameterType="String" resultType="com.kid.pojo.Student">
select *
from task.student
where sex = #{sex}
</select>
</mapper>
创建实体类beans.
StudentService.java
package com.next.service;
import com.next.pojo.Student;
import java.util.List;
public interface StudentService {
//增加学生
int insertStudent(Student student);
//删除学生
int deleteStudentBySid(String sid);
int deleteStudentById(int id);
int deleteStudentByName(String name);
int deleteStudentByAge(int age);
int deleteStudentBySex(String sex);
//修改学生信息
int updateStudent(Student student);
//查找学生
List<Student> getStudentAll();
List<Student> getStudentBySid(String sid);
List<Student> getStudentById(int id);
List<Student> getStudentByName(String name);
List<Student> getStudentByAge(int age);
List<Student> getStudentBySex(String sex);
}
创建DAO接口 dao.MyTest.java
import com.next.controller.StudentController;
import com.next.pojo.Student;
import org.junit.Test;
import java.util.List;
import java.util.UUID;
public class MyTest {
@Test
/**
* 测试查询所有学生信息
*/
public void testSelectStudentAll() {
StudentController studentController = new StudentController();
List<Student> list = null;
//查找前需要注意数据库中是否存在符合查询条件的信息
list = studentController.selectStudent();//查找所有学生
list = studentController.selectStudent(1003, "id");
list = studentController.getStudentAll();
list = studentController.getStudentById(1004);
list = studentController.getStudentBySex("男");
list = studentController.getStudentBySid("4603848f2e8e4769a0d30bf78f3dc562");
list = studentController.getStudentByName("Kid");
list=studentController.getStudentByAge(20);
if (list == null) {
System.out.println("未找到");
} else {
System.out.println("输出查询信息");
for (Student student : list) {
System.out.println(student);
}
}
}
@Test
/**
* 测试插入学生信息
*/
public void testInsertStudent() {
boolean result = false;
StudentController studentController = new StudentController();
Student student = new Student(UUID.randomUUID().toString().replace("-", ""), 1020, "黑羽快斗", "1235", 30, "男");
result = studentController.insertStudent(student);
if (result) {
System.out.println("添加成功");
System.out.println(student);
} else {
System.out.println("添加失败");
}
}
@Test
public void testDeleteStudent() {
boolean result = false;
StudentController studentController = new StudentController();
//删除前需要注意数据库中是否存在符合删除条件的信息
result = studentController.deleteStudent(1001, "id");
result = studentController.deleteStudentById(1002);
result = studentController.deleteStudentBySex("女");
result = studentController.deleteStudentBySid("fjakslfk349rhrksar4");
result = studentController.deleteStudentByAge(20);
result = studentController.deleteStudentByName("Kid");
if (result) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
@Test
/**
* 测试更新学生信息
*/
public void testUpdateStudent() {
boolean result = false;
StudentController studentController = new StudentController();
Student student = new Student("fjakslfk349rhrksar4", 1010, "Kid", "1235", 300, "男");
System.out.print("原本的数据:");
System.out.println(studentController.getStudentBySid(student.getSid()));
result = studentController.updateStudent(student);
if (result) {
System.out.println("修改成功");
System.out.print("修改后的数据:");
System.out.println(student);
} else {
System.out.println("修改失败");
}
}
}
在config.properties资源文件中,添加自己数据库的信息
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/task?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username=root
password=
在mybatis-config.xml配置文件中引入外部资源
<!--引入外部配置文件-->
<properties resource="config.properties"/>
4.测试
import com.kid.controller.StudentController;
import com.kid.pojo.Student;
import org.junit.Test;
import java.util.List;
import java.util.UUID;
public class MyTest {
@Test
/**
* 测试查询所有学生信息
*/
public void testSelectStudentAll() {
StudentController studentController = new StudentController();
List<Student> list = null;
//查找前需要注意数据库中是否存在符合查询条件的信息
list = studentController.selectStudent();//查找所有学生
list = studentController.selectStudent(1003, "id");
list = studentController.getStudentAll();
list = studentController.getStudentById(1004);
list = studentController.getStudentBySex("男");
list = studentController.getStudentBySid("4603848f2e8e4769a0d30bf78f3dc562");
list = studentController.getStudentByName("Kid");
list=studentController.getStudentByAge(20);
if (list == null) {
System.out.println("未找到");
} else {
System.out.println("输出查询信息");
for (Student student : list) {
System.out.println(student);
}
}
}
@Test
/**
* 测试插入学生信息
*/
public void testInsertStudent() {
boolean result = false;
StudentController studentController = new StudentController();
Student student = new Student(UUID.randomUUID().toString().replace("-", ""), 1020, "黑羽快斗", "1235", 30, "男");
result = studentController.insertStudent(student);
if (result) {
System.out.println("添加成功");
System.out.println(student);
} else {
System.out.println("添加失败");
}
}
@Test
public void testDeleteStudent() {
boolean result = false;
StudentController studentController = new StudentController();
//删除前需要注意数据库中是否存在符合删除条件的信息
result = studentController.deleteStudent(1001, "id");
result = studentController.deleteStudentById(1002);
result = studentController.deleteStudentBySex("女");
result = studentController.deleteStudentBySid("fjakslfk349rhrksar4");
result = studentController.deleteStudentByAge(20);
result = studentController.deleteStudentByName("Kid");
if (result) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
@Test
/**
* 测试更新学生信息
*/
public void testUpdateStudent() {
boolean result = false;
StudentController studentController = new StudentController();
Student student = new Student("fjakslfk349rhrksar4", 1010, "Kid", "1235", 300, "男");
System.out.print("原本的数据:");
System.out.println(studentController.getStudentBySid(student.getSid()));
result = studentController.updateStudent(student);
if (result) {
System.out.println("修改成功");
System.out.print("修改后的数据:");
System.out.println(student);
} else {
System.out.println("修改失败");
}
}
}
查询实现
修改实现