Java+MySQL+Mybatis+Junit4实现学生信息管理系统
数据库表创建数据添加-- 创建学生信息表CREATETABLEstudent(idBIGINTPRIMARYKEYNOTNULLAUTO_INCREMENTCOMMENT自增主键ID,studNoVARCHAR(20)NOTNULLCOMMENT学号,nameVARCHAR(50)NOTNULLCOMMENT姓名,genderINTDEFAULT0COMMENT性别0-未知 1-男 2-女,phoneVARCHAR(20)COMMENT联系电话,home_addressVARCHAR(255)COMMENT家庭住址,class_nameVARCHAR(50)COMMENT班级名称,statusINTUNSIGNEDDEFAULT1COMMENT学籍状态1-在读 2-休学 3-毕业 4-退学 5-开除)COMMENT学生基本信息表;INSERTINTOstudent_info(studNo,name,gender,phone,home_address,class_name,status)VALUES(202301001,张明,1,13800138001,浙江省杭州市,计算机科学与技术2023级1班,1),(202301002,李婷,2,13800138002,辽宁省大连市,计算机科学与技术2023级1班,1),(202302015,王浩,1,13800138003,北京市,软件工程2023级2班,1),(202201023,赵晓雨,2,13800138004,上海市,计算机科学与技术2022级1班,2),(202103008,刘阳,1,13800138005,山东省青岛市,软件工程2021级3班,3);Java代码实现项目结构mybatis配置文件?xml version1.0encodingUTF-8?!DOCTYPEconfigurationPUBLIC-//mybatis.org//DTD Config 3.0//ENhttps://mybatis.org/dtd/mybatis-3-config.dtdconfigurationproperties resourcedb.properties/environmentsdefaultdevenvironment iddevtransactionManager typeJDBC/dataSource typePOOLEDproperty namedrivervalue${driver}/property nameurlvalue${url}/property nameusernamevalue${username}/property namepasswordvalue${password}//dataSource/environment/environmentsmappersmapper resourcecn/stud/mapper/StudentMapper.xml//mappers/configurationmapper中需要写入创建的mapper实现xml路径名才可以访问到 使用${} 将数据库连接内容db.properties编译进去db.properties这个文件中需要配置自己的数据库信息数据库名用户名密码我这边用的是MySQL5.1版本将useSSLfalse进行拼接表示禁用 SSL 加密低版本一般这样设置drivercom.mysql.jdbc.Driver urljdbc:mysql:///local_data?useSSLfalse usernameroot password123456SqlSession工具类packagecn.stud.util;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importjava.io.InputStream;publicclassMybatisConnUtils{privatestaticSqlSessionFactoryssf;static{//获取连接对象try(InputStreaminputStreamResources.getResourceAsStream(mybatis-config.xml)){//获取sqlSession会话工厂ssfnewSqlSessionFactoryBuilder().build(inputStream);}catch(Exceptione){thrownewRuntimeException(e);}}//获取连接publicstaticSqlSessiongetConn(){returnssf.openSession();}}Student实体类packagecn.stud.domain;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;NoArgsConstructorAllArgsConstructorDatapublicclassStudent{//自增主键IDprivatelongid;//学号privateStringstudNo;//姓名privateStringname;//性别0-未知 1-男 2-女privateintgender;//联系电话privateStringphone;//家庭住址privateStringhome_address;//班级名称privateStringclass_name;//学籍状态1-在读 2-休学 3-毕业 4-退学 5-开除privateintstatus;}DAO接口packagecn.stud.dao;importcn.stud.domain.Student;importjava.util.List;publicinterfaceStudentDAO{voidinsert(Students);voidupdate(Students);voiddel(longid);StudentgetById(longid);ListStudentgetAll();}DAO实现类packagecn.stud.dao.impl;importcn.stud.dao.StudentDAO;importcn.stud.domain.Student;importcn.stud.util.MybatisConnUtils;importorg.apache.ibatis.session.SqlSession;importjava.util.List;publicclassStudentDAOImplimplementsStudentDAO{privatestaticSqlSessionssMybatisConnUtils.getConn();Overridepublicvoidinsert(Students){ss.insert(cn.stud.mapper.StudentMapper.insert,s);ss.commit();}Overridepublicvoidupdate(Students){ss.update(cn.stud.mapper.StudentMapper.update,s);ss.commit();}Overridepublicvoiddel(longid){ss.delete(cn.stud.mapper.StudentMapper.del,id);ss.commit();}OverridepublicStudentgetById(longid){returnss.selectOne(cn.stud.mapper.StudentMapper.getById,id);}OverridepublicListStudentgetAll(){returnss.selectList(cn.stud.mapper.StudentMapper.getAll);}}mapper?xml version1.0 encodingUTF-8 ?!DOCTYPEmapperPUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecn.stud.mapper.StudentMapperinsertidinsertuseGeneratedKeystruekeyColumnidkeyPropertyidinsert into student(studNo,name,gender,phone,home_address,class_name,status) values( #{studNo}, #{name}, #{gender}, #{phone}, #{home_address}, #{class_name}, #{status} )/insertupdateidupdateupdate student set studNo #{studNo}, name #{name}, gender #{gender}, phone #{phone}, home_address #{home_address}, class_name #{class_name}, status #{status} where id #{id}/updatedeleteiddeldelete from student where id #{id}/deleteselectidgetByIdresultTypecn.stud.domain.Studentselect id,studNo,name,gender,phone,home_address,class_name,status from student where id #{id}/selectselectidgetAllresultTypecn.stud.domain.Studentselect id,studNo,name,gender,phone,home_address,class_name,status from student/select/mapper测试类packagecn.stud.dao.impl;importcn.stud.dao.StudentDAO;importcn.stud.domain.Student;importorg.junit.Test;importstaticorg.junit.Assert.*;publicclassStudentDAOImplTest{privateStudentDAOsdnewStudentDAOImpl();Testpublicvoidinsert(){StudentstudentnewStudent();student.setStudNo(a1234);student.setName(张张);student.setGender(1);student.setPhone(13321211111);student.setHome_address(住址);student.setClass_name(计算机);student.setStatus(1);sd.insert(student);}Testpublicvoidupdate(){StudentstudentnewStudent();student.setStudNo(a12345);student.setName(张张1);student.setGender(0);student.setPhone(13321211100);student.setHome_address(住址0);student.setClass_name(计算机8);student.setStatus(2);sd.update(student);}Testpublicvoiddel(){sd.del(6L);}TestpublicvoidgetById(){System.out.println(sd.getById(2L));}TestpublicvoidgetAll(){sd.getAll().forEach(System.out::println);}}