mybatis_mysql使用 学习笔记

本文档详细记录了使用MyBatis框架与MySQL数据库进行数据操作的过程,包括配置SqlMapConfig.xml,创建ProductDao和StudentDao接口,实现 DaoImp,设计ProductMapper和StudentMapper XML文件,定义Pojo实体类,编写MyBatisUtil工具类以及一系列的测试用例,涵盖了增删查改操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UseMyBatis_MySQL

开启数据库服务,导入mysql

sql脚本

CREATE DATABASE GYZY


USE GYZY


--创建学生表
CREATE TABLE Student(
	Srollno char(15) primary key,
	Sname nvarchar(6) NOT NULL,
	Spassword varchar(30) NOT NULL,
	Sgender nchar(1) NOT NULL,
	Sbatch nvarchar(20) NOT NULL
)
INSERT Student  VALUES ('2017204629', N'吕品', '204629', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204514', N'王晨旭', '204514', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204529', N'毕文静', '204529', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204536', N'代明哲', '204536', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204542', N'张淋', '204542', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204545', N'孟祥祚', '204545', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204563', N'江浩', '204563', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204564', N'刘萌', '204564', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204565', N'徐青磊', '204565', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204568', N'马振岩', '204568', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204571', N'吴济辰', '204571', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204576', N'吉思远', '204576', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204581', N'陈璐', '204581', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204583', N'席如一', '204583', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204589', N'高璐涵', '204589', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204590', N'张国龙', '204590', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204594', N'司立伟', '204594', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204598', N'陈龙飞', '204598', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204604', N'魏茂峰', '204604', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204610', N'杨宇轩', '204610', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204614', N'王雪琦', '204614', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204615', N'罗伟特', '204615', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204617', N'张志凡', '204617', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204621', N'高晓昇', '204621', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204624', N'殷立超', '204624', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204629', N'郭顺', '204629', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204644', N'迟凯元', '204644', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204647', N'张天舒', '204647', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204664', N'张心雨', '204664', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204674', N'张嘉琦', '204674', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204677', N'高轶凡', '204677', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204678', N'李金雨', '204678', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204685', N'田玖钦', '204685', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204701', N'王宣文', '204701', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204714', N'韩逸飞', '204714', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204719', N'庞凤龙', '204719', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204721', N'李睿恒', '204721', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204733', N'董继鹏', '204733', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204734', N'贾坤坤', '204734', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204741', N'刘丛硕', '204741', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204745', N'祁宇轩', '204745', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204750', N'苑笑笑', '204750', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204753', N'房子博', '204753', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204770', N'李玉涵', '204770', N'女', N'19软件J01');
INSERT Student  VALUES ('2019204772', N'马晓楠', '204772', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204782', N'李辰子', '204782', N'男', N'19软件J01');
INSERT Student  VALUES ('2019204809', N'丁琪', '204809', N'男', N'19软件J01');
INSERT Student  VALUES ('2017204609', N'刘昌鑫', '204609', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204521', N'赵石涛', '204521', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204526', N'史衍通', '204526', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204535', N'赵海燕', '204535', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204540', N'郭浩然', '204540', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204541', N'苏静', '204541', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204551', N'朱粟钰', '204551', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204559', N'沙琪钧', '204559', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204567', N'付烁霖', '204567', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204569', N'曲献凯', '204569', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204570', N'施涵宇', '204570', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204572', N'宋平', '204572', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204573', N'杨晨', '204573', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204575', N'黄亚奎', '204575', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204577', N'明健', '204577', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204578', N'安康', '204578', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204599', N'王晟', '204599', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204606', N'魏利民', '204606', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204607', N'李亿荣', '204607', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204608', N'刘尚龙', '204608', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204613', N'段军硕', '204613', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204635', N'陈建历', '204635', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204640', N'谭宁康', '204640', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204646', N'陈甲煊', '204646', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204648', N'杨宇轩', '204648', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204656', N'吴昱颉', '204656', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204659', N'曲睿', '204659', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204669', N'魏一泽', '204669', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204673', N'孙铂皓', '204673', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204680', N'杨文硕', '204680', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204691', N'刘裕', '204691', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204712', N'杜崇瀚', '204712', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204723', N'赵月', '204723', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204728', N'谢玉丽', '204728', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204746', N'颜瀚', '204746', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204760', N'田欣东', '204760', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204761', N'白嘉威', '204761', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204784', N'王子池', '204784', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204785', N'姜志伟', '204785', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204786', N'李洋洋', '204786', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204787', N'王贤慧', '204787', N'女', N'19软件J02');
INSERT Student  VALUES ('2019204788', N'董岳', '204788', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204792', N'鲍颂', '204792', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204798', N'王信翔', '204798', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204802', N'李吉超', '204802', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204805', N'孙泽宽', '204805', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204806', N'张宇', '204806', N'男', N'19软件J02');
INSERT Student  VALUES ('2019204808', N'李一诺', '204808', N'男', N'19软件J02');
INSERT Student  VALUES ('2017204598', N'宫恩健', '204598', N'男', N'17软件J04');
INSERT Student  VALUES ('2017204681', N'周海川', '204681', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204511', N'丁靖源', '204511', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204512', N'赵方圆', '204512', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204516', N'张文丰', '204516', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204517', N'王文静', '204517', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204519', N'王泽良', '204519', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204528', N'张一诺', '204528', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204550', N'李君豪', '204550', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204562', N'赵启辰', '204562', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204574', N'于涵', '204574', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204582', N'蔺煊赫', '204582', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204587', N'刘增辉', '204587', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204593', N'刘明宇', '204593', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204609', N'潘美希', '204609', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204611', N'刘延浩', '204611', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204633', N'张文源', '204633', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204641', N'孙传龙', '204641', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204645', N'袁安邦', '204645', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204649', N'步寅硕', '204649', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204660', N'安方宁', '204660', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204666', N'代乾宇', '204666', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204686', N'石鹏', '204686', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204688', N'冯秀起', '204688', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204700', N'张开翼', '204700', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204710', N'牟润泽', '204710', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204716', N'李俊霖', '204716', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204729', N'荆琪', '204729', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204730', N'史长洪', '204730', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204731', N'宋子豪', '204731', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204735', N'孙浩', '204735', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204747', N'王鹏程', '204747', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204749', N'王宁', '204749', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204752', N'尹雨欣', '204752', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204754', N'毕德顺', '204754', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204756', N'刘慧毓', '204756', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204762', N'宋昌奇', '204762', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204763', N'易傲璇', '204763', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204776', N'胡燕平', '204776', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204777', N'李宗盛', '204777', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204779', N'仵允恒', '204779', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204783', N'刘绪发', '204783', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204790', N'孔德龙', '204790', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204791', N'董焘', '204791', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204795', N'张曦今', '204795', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204799', N'李倩如', '204799', N'女', N'19软件J03');
INSERT Student  VALUES ('2019204800', N'付昱洋', '204800', N'男', N'19软件J03');
INSERT Student  VALUES ('2019204804', N'马越', '204804', N'男', N'19软件J03');
INSERT Student  VALUES ('2017204542', N'杨晨', '204542', N'男', N'17软件J05');
INSERT Student  VALUES ('2019204513', N'潘敬元', '204513', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204524', N'丁紫依', '204524', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204530', N'刘子渝', '204530', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204531', N'王冠钊', '204531', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204532', N'申展', '204532', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204544', N'刘仲舒', '204544', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204546', N'肖新洁', '204546', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204547', N'孙祎', '204547', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204557', N'王震', '204557', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204600', N'徐勤睿', '204600', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204605', N'张茹', '204605', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204612', N'李钰龙', '204612', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204620', N'黄尧', '204620', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204625', N'赵至力', '204625', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204627', N'刘茂林', '204627', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204632', N'刘越', '204632', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204634', N'王龙华', '204634', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204642', N'李云鹏', '204642', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204643', N'李汶卿', '204643', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204651', N'王凯璇', '204651', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204652', N'蔡文浩', '204652', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204655', N'夏航', '204655', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204657', N'苏溢轩', '204657', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204658', N'赵广宇', '204658', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204662', N'李浩', '204662', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204665', N'李季', '204665', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204675', N'于祥坤', '204675', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204681', N'徐文龙', '204681', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204684', N'姚庆辰', '204684', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204695', N'王恩淏', '204695', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204698', N'程诺', '204698', N'女', N'19软件BD03');
INSERT Student  VALUES ('2019204703', N'陈奕鑫', '204703', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204705', N'曲硕', '204705', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204725', N'柯桂淇', '204725', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204736', N'孔一帆', '204736', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204740', N'郑家烁', '204740', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204743', N'张晋耀', '204743', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204767', N'杨庆轩', '204767', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204793', N'林楠翔', '204793', N'男', N'19软件BD03');
INSERT Student  VALUES ('2019204801', N'李越', '204801', N'男', N'19软件BD03');

INSERT Student  VALUES ('2017204678', N'徐江威', '204678', N'男', N'17软件J05');
INSERT Student  VALUES ('2015206427', N'李远哲', '206427', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204515', N'张兆年', '204515', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204519', N'董友良', '204519', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204527', N'周忠禹', '204527', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204537', N'王豪', '204537', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204555', N'褚宸赓', '204555', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204566', N'孙昌尧', '204566', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204586', N'孟令睿', '204586', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204592', N'李一航', '204592', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204601', N'张雨晴', '204601', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204602', N'周详斐', '204602', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204616', N'陈雯', '204616', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204619', N'苏兆宇', '204619', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204619', N'王浩羽', '204619', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204626', N'庄君哲', '204626', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204637', N'张真瑜', '204637', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204653', N'王晓峰', '204653', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204661', N'韩硕', '204661', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204663', N'杨智勇', '204663', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204667', N'周稚麟', '204667', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204671', N'刘云霄', '204671', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204679', N'史振岐', '204679', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204682', N'马昊', '204682', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204683', N'赵卓群', '204683', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204689', N'曹莫言', '204689', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204694', N'董晓', '204694', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204696', N'尹子石', '204696', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204699', N'李年龙', '204699', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204704', N'李坤隆', '204704', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204706', N'曲效同', '204706', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204709', N'梁瑜臣', '204709', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204711', N'范静如', '204711', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204715', N'刘炳琨', '204715', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204737', N'祖旭', '204737', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204755', N'徐润鹏', '204755', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204757', N'闫潇文', '204757', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204759', N'郝佳诺', '204759', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204773', N'赵玉洁', '204773', N'女', N'19软件BD01');
INSERT Student  VALUES ('2019204794', N'李文哲', '204794', N'男', N'19软件BD01');
INSERT Student  VALUES ('2019204510', N'刘逸飞', '204510', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204539', N'刘云霄', '204539', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204543', N'陈俣泽', '204543', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204548', N'张智慧', '204548', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204549', N'樊兆威', '204549', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204554', N'卢海', '204554', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204558', N'韩子龙', '204558', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204580', N'张子川', '204580', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204584', N'白冰洋', '204584', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204596', N'刘文祺', '204596', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204622', N'刘飞', '204622', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204623', N'张浩震', '204623', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204628', N'张赢', '204628', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204631', N'朱效宇', '204631', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204639', N'刘伊凤', '204639', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204672', N'房晓甜', '204672', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204692', N'高铭阳', '204692', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204693', N'胡瑞', '204693', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204702', N'车畅达', '204702', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204707', N'商云娴', '204707', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204708', N'李家铭', '204708', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204713', N'周方童', '204713', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204719', N'俞蓝青', '204719', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204720', N'付子浩', '204720', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204722', N'郭力维', '204722', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204724', N'佀祥瑞', '204724', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204726', N'杨传宇', '204726', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204751', N'齐颖', '204751', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204764', N'刘庆斌', '204764', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204765', N'赵世鹏', '204765', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204768', N'米广正', '204768', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204769', N'姚丽', '204769', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204771', N'潘韦铮', '204771', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204774', N'李文龙', '204774', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204778', N'程元昭', '204778', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204780', N'杨浩杰', '204780', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204789', N'张仰祥', '204789', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204796', N'杨千慈', '204796', N'女', N'19软件BD02');
INSERT Student  VALUES ('2019204797', N'张路宁', '204797', N'男', N'19软件BD02');
INSERT Student  VALUES ('2019204807', N'李舸飞', '204807', N'男', N'19软件BD02');
INSERT Student  VALUES ('2017204549', N'朱睿', '204549', N'男', N'17软件J02');
INSERT Student  VALUES ('2017204552', N'宋健', '204552', N'男', N'17软件J02');
INSERT Student  VALUES ('2019204520', N'王一名', '204520', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204522', N'李威', '204522', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204523', N'丁嘉楠', '204523', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204525', N'何为源', '204525', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204533', N'郭嘉', '204533', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204534', N'孙英冉', '204534', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204538', N'刘洋', '204538', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204553', N'庞铭江', '204553', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204556', N'孙亚宁', '204556', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204560', N'张瑞祥', '204560', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204561', N'祝亚如', '204561', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204579', N'宋晗', '204579', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204588', N'国文宇', '204588', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204591', N'林楷', '204591', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204595', N'尹少杰', '204595', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204597', N'褚夫望', '204597', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204630', N'许凌云', '204630', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204636', N'姚明远', '204636', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204638', N'罗安俊', '204638', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204650', N'梁瑞东', '204650', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204654', N'李嘉鹏', '204654', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204668', N'朱秀壮', '204668', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204670', N'宋齐鲁', '204670', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204676', N'卢建奕', '204676', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204687', N'姜雅心', '204687', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204690', N'张泽凯', '204690', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204697', N'李屏歌', '204697', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204717', N'代文君', '204717', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204727', N'张俊', '204727', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204732', N'张鑫', '204732', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204738', N'孙志超', '204738', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204739', N'李俊逸', '204739', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204742', N'陈悦欣', '204742', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204744', N'徐英康', '204744', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204748', N'孙朝利', '204748', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204758', N'徐煜', '204758', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204766', N'张辰旭', '204766', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204775', N'张雨霏', '204775', N'女', N'19软件BD04');
INSERT Student  VALUES ('2019204781', N'苗强', '204781', N'男', N'19软件BD04');
INSERT Student  VALUES ('2019204803', N'王豪祯', '204803', N'男', N'19软件BD04');


select * from Student


--产品表
CREATE TABLE Product
(
productId char(4) primary key,
productName nvarchar(20) not null,
productPrice float not null,
productUnit nvarchar(6),
productStock int,
productImg varchar(30)
)


INSERT Product VALUES
('P001',N'卫龙辣条',2,N'包',1000,'P001.jpg'),
('P002',N'青岛大虾',38,N'只',20000,'P002.jpg'),
('P003',N'四级真题',28,N'套',3500,'P003.jpg'),
('P004',N'快乐肥宅水',10,N'大瓶',4000,'P004.jpg');


SELECT * FROM Product




com.niit.mybatis.config包

###dbconfig.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/GYZY
jdbc.username=root
jdbc.password=123456

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
	<!-- mybatis开启数据库字段自动映射为java驼峰命名规则 -->

	<!--properteis标记用于定义属性或者指定外部属性文件的位置,在这里指的是属性文件的位置-->
	<properties resource="com/niit/mybatis/config/dbconfig.properties">	
		<!--每个属性使用一个property标记定义,每个属性拥有一个属性名和一个属性值-->
		<property name="jdbc.driverClass" value="com.mysql.jdbc.Driver"/>	
	</properties>
	
	<!-- 配置mybatis的环境信息-->
	<environments default="development">
		<environment id="development">
			<!-- 配置JDBC事务控制-->
			<transactionManager type="JDBC"/>
			<!-- 配置数据源:POOLED(池化数据源)、UNPOOLED(非池化数据源)、JNDI(JNDI数据源)-->
			<dataSource type="POOLED">
				<property name="driver"    value="${jdbc.driverClass}"/>
				<property name="url"       value="${jdbc.url}"/>
				<property name="username"  value="${jdbc.username}"/>
				<property name="password"  value="${jdbc.password}"/>
			</dataSource>
		</environment>
	</environments>
	<!-- 配置mapping映射文件-->
	<mappers>
		<mapper resource="com/niit/mybatis/mapper/StudentMapper.xml"></mapper>
		<mapper resource="com/niit/mybatis/mapper/ProductMapper.xml"></mapper>
	</mappers>
</configuration>


com.niit.mybatis.dao

ProductDao.java

package com.niit.mybatis.dao;

import java.util.List;

import com.niit.mybatis.pojo.Product;

/**
 * Dao: data acess object 数据访问对象 ProductDao接口,定义对Product表的操作有哪些
 *
 * 
 */
public interface ProductDao {

    void insert(Product p);

    void update(Product p);

    void delete(String pid);

    Product getOne(String pid);

    List<Product> getAll();

}

StudentDao.java

package com.niit.mybatis.dao;
import java.util.List;

import com.niit.mybatis.pojo.Student;

/**
 * 创建StudentDao接口,定义对Student表的操作有哪些
 *
 */
public interface StudentDao {

    void insert(Student s);

    void update(Student s);

    void deleteById(String id);

    Student getOneById(String id);

    List<Student> getAll();

    List<Student> getStudentListByBatchName(String batchName);

}

com.niit.mybatis.dao.imp

ProductDaoImp.java

package com.niit.mybatis.dao.imp;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.pojo.Product;
import com.niit.mybatis.util.MyBatisUtil;
/**
 * ProductDaoImpl类,ProductDao接口的实现类,包含Product表各个操作的实现代码
 * @author Alice
 *
 */
public class ProductDaoImp implements ProductDao {
	public SqlSession session = MyBatisUtil.openSession();
	//SqlSession接口的insert、update、delete、selectOne、selectAll方法
    //可以接受一个或两个参数,分别表示要执行的操作的id和执行操作需要的参数  

	@Override
	public void insert(Product p) {
		// TODO Auto-generated method stub
		session.insert("com.niit.mybatis.dao.ProductDao.insert", p);
		session.commit();
		session.close();
	}
	@Override
	public void update(Product p) {
		// TODO Auto-generated method stub
		session.update("com.niit.mybatis.dao.ProductDao.update",p);
		session.commit();
		session.close();
	}
	@Override
	public void delete(String pid) {
		// TODO Auto-generated method stub
		session.delete("com.niit.mybatis.dao.ProductDao.delete", pid);
		session.commit();
		session.close();
	}

	@Override
	public Product getOne(String pid) {
		// TODO Auto-generated method stub
		Product product = session.selectOne("com.niit.mybatis.dao.ProductDao.getOne", pid);
		session.close();
		return product;
	}

	@Override
	public List<Product> getAll() {
		// TODO Auto-generated method stub
		List<Product> list = session.selectList("com.niit.mybatis.dao.ProductDao.getAll");
		session.close();
		return list;
	}
}

StudentDaoImp.java

package com.niit.mybatis.dao.imp;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.pojo.Student;
import com.niit.mybatis.util.MyBatisUtil;
/**
 * StudentDao接口的实现类StudentDaoImpl,实现对student表的各个操作
 * @author Alice
 *
 */
public class StudentDaoImp implements StudentDao {
	
	@Override
	public void insert(Student s) {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口的insert()方法用于执行一个更新的操作
		//返回一个整数,表示受影响的行数,如果需要使用返回值,可以用一个整数类型的变量接收
		session.insert("com.niit.mybatis.dao.StudentDao.insert", s);
		session.commit();//提交事务,插入操作之后才会反应到数据库
		session.close();
	}

	@Override
	public void update(Student s) {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口的update()方法用于执行一个更新的操作
		//返回一个整数,表示受影响的行数,如果需要使用返回值,可以用一个整数类型的变量接收
		session.update("com.niit.mybatis.dao.StudentDao.update", s);
		session.commit();//提交事务,更新操作之后才会反应到数据库
		session.close();
	}

	@Override
	public void deleteById(String id) {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口的delete()方法用于执行一个插入操作
        //返回一个整数,表示受影响的行数,如果需要使用该返回值,可用一个整数类型的变量接收
		session.delete("com.niit.mybatis.dao.StudentDao.deleteById", id);
		session.commit();
		session.close();
	}
	@Override
	public Student getOneById(String id) {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口提供selectOne()方法用于查询单条记录,封装成单个对象返回
        //selectOne()方法可以接受两个参数
        //第一个参数是你要执行的操作的id
        //第二个参数是执行的sql语句需要的参数的值,也是Dao接口方法需要的参数,这里是一个学号,用于查询学生信息
		Student s = session.selectOne("com.niit.mybatis.dao.StudentDao.getOneById", id);
		session.close();
		return s;
	}

	@Override
	public List<Student> getAll() {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口的selectList()方法用于执行一个查询,返回一个列表
		List<Student> listAll=session.selectList("com.niit.mybatis.dao.StudentDao.getAll");
		session.close();
		return listAll;
	}

	@Override
	public List<Student> getStudentListByBatchName(String batchName) {
		// TODO Auto-generated method stub
		SqlSession session = MyBatisUtil.openSession();
		//SqlSession接口的selectList()方法用于执行一个查询,返回一个列表
		List<Student> listBatch=session.selectList("com.niit.mybatis.dao.StudentDao.getStudentListByBatchName",batchName);
		session.close();
		return listBatch;
	}

}

com.niit.mybatis.mapper

ProductMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<!--mybatis映射文件的根元素是mapper-->
<mapper namespace="com.niit.mybatis.dao.ProductDao">
	<!--mapper标记中的属性namespace属性用于指定映射的接口,也就是说明该映射文件是映射的那个接口的操作-->
  <!-- 进行增删查改的操作  -->

  <!--resultMap标记用于映射结果,如将一个实体类的各个属性和一个表的各列映射-->    
  <!--如果类属性名和表列名同名,一一对应,则mybatis会自动映射-->
  <!--id标记用于指定结果映射的名称,唯一标识每个结果映射-->
  <!--type指定查询的数据封装成的数据类型,这里希望查询的结果封装成Product对象,所以指定类型为Product-->
  <!--同名的属性可不写映射-->
    <resultMap id="productMap" type="com.niit.mybatis.pojo.Product">
        <!--id标记用于映射主键列和键属性-->
        <!--<id property="productId" column="productId" />-->
        <!--result标记用于映射非主键列和非键属性-->
        <result property="name" column="productName" />
        <result property="price" column="productPrice" />
        <result property="unit" column="productUnit" />
        <result property="stock" column="productStock" />
        <result property="image" column="productImg" />
    </resultMap>
    
    <!--parameterType用于指定参数类型,resultMap或resultType属性用于指定查询的结果封装的类型-->
    <!--这里的parameterType="string"也可不写,会根据传入的值推断-->
    <select id="getOne" resultMap="productMap" parameterType="string">
        select * from product where productId = #{productId}
    </select>
    
    <select id="getAll" resultMap="productMap">
        select * from product
    </select>
 
  <!--parameterType属性用于指定参数的类型,也可以不用写parameterType,会根据传入的值自行推断-->
  <insert id="insert" parameterType="com.niit.mybatis.pojo.Product">
  	  insert into product values(#{productId},#{name},#{price},#{unit},#{stock},#{image})
  </insert>
  
  <update id="update" parameterType="com.niit.mybatis.pojo.Product">
  	  update product set productName=#{name},productPrice=#{price},productUnit=#{unit},productStock=#{stock},productImg=#{image} where productId=#{productId}
  </update>
  
  <delete id="delete" parameterType="string">
  	  delete from product where productId=#{pid}
  </delete>
 
</mapper>

StudentMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<!--mybatis映射文件的根元素是mapper-->
<mapper namespace="com.niit.mybatis.dao.StudentDao">
	<!--mapper标记中的属性namespace属性用于指定映射的接口,也就是说明该映射文件是映射的那个接口的操作-->
 <!-- <cache-ref namespace="com.niit.mybatis.dao.StudentDao"/> -->
  <!-- 进行增删查改的操作  -->
  <!-- select标记用于映射Dao接口的一个查询操作  -->
  <!-- select标记中的id属性指定一个名称,用于唯一标识的每个操作,id的名称和Dao接口的方法名/操作名一致才可以 -->
  <!-- select标记中的resultType属性指定查询的结果封装成什么类型 -->
  <select id="getOneById" resultType="com.niit.mybatis.pojo.Student" >
  	  select * from student where srollno = #{id}
  </select>
  <!-- 如果查询返回的结果是一个列表,那么只需要指定列表中对象的类型即可 -->
  <select id="getAll" resultType="com.niit.mybatis.pojo.Student" >
  	  select * from student
  </select>
  <select id="getStudentListByBatchName" resultType="com.niit.mybatis.pojo.Student" >
  	  select * from student where sbatch = #{batchName}
  </select>
  <!--parameterType属性用于指定参数的类型,也可以不用写parameterType,会根据传入的值自行推断-->
  <insert id="insert" parameterType="com.niit.mybatis.pojo.Student">
  	  insert into student values(#{srollno},#{sname},#{spassword},#{sgender},#{sbatch})
  </insert>
  
  <update id="update" parameterType="com.niit.mybatis.pojo.Student">
  	  update student set sname=#{sname},spassword=#{spassword},sgender=#{sgender},sbatch=#{sbatch} where srollno=#{srollno}
  </update>
  
  <delete id="deleteById" parameterType="string">
  	  delete from student where srollno=#{id}
  </delete>
 
</mapper>

com.niit.mybatis.pojo

Product.java

package com.niit.mybatis.pojo;

import java.io.Serializable;

/**
 * 实体类Product
 *
 * 
 */
public class Product implements Serializable {

    private String productId;
    private String name;
    private Float price;
    private String unit;
    private Integer stock;
    private String image;

    public Product() {
    }

    public Product(String pid, String name, Float price, String unit, Integer stock, String image) {
        this.productId = pid;
        this.name = name;
        this.price = price;
        this.unit = unit;
        this.stock = stock;
        this.image = image;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    @Override
    public String toString() {
        return "----------------------------------------------------------"
                + "\n产品编号:" + productId
                + "\n产品名称:" + name
                + "\n产品单价:" + price
                + "\n包装单位:" + unit
                + "\n产品库存:" + stock
                + "\n产品图片:" + image;
    }
}

Student.java

package com.niit.mybatis.pojo;
import java.io.Serializable;

/**
 * 学生实体类,用于存储学生所有信息
 */
public class Student implements Serializable{
    
    private String srollno;
    private String sname;
    private String sgender;
    private String sbatch;
    private String spassword;

    public Student() {
    }

    public Student(String srollno, String sname, String spassword) {
        this.srollno = srollno;
        this.sname = sname;
        this.spassword = spassword;
    }

    public Student(String srollno, String sname, String spassword, String sgender, String sbatch) {
        this.srollno = srollno;
        this.sname = sname;
        this.sgender = sgender;
        this.sbatch = sbatch;
        this.spassword = spassword;
    }

    public String getSrollno() {
        return srollno;
    }

    public void setSrollno(String srollno) {
        this.srollno = srollno;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSgender() {
        return sgender;
    }

    public void setSgender(String sgender) {
        this.sgender = sgender;
    }

    public String getSbatch() {
        return sbatch;
    }

    public void setSbatch(String sbatch) {
        this.sbatch = sbatch;
    }

    public String getSpassword() {
        return spassword;
    }

    public void setSpassword(String spassword) {
        this.spassword = spassword;
    }

    @Override
    public String toString() {
        return srollno + "\t" + sname + "\t\t" + spassword +"\t\t"+ sgender + "\t" + sbatch;
    }
}

com.niit.mybatis.util

MyBatisUtil.java

package com.niit.mybatis.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * 
 *	MybatisUtil类,用于根据mybatis配置文件的配置创建会话工厂实例
 * <br>SqlSessionFactory
 * 
 *
 */
public class MyBatisUtil {
	
	private static SqlSessionFactory sqlSessionFactory;
	//在一个应用程序中,会话工厂只创建一个实例即可,可以考虑使用静态代码块实例化会话工厂
	static{
			try {
				//MyBatis提供了Resources类,可以加载外部资源文件
				//Resources类的getResourceAsStream()等方法可用于加载指定的资源文件,返回一个InputStream的对象,用于操作文件数据
				InputStream inputStream = Resources.getResourceAsStream("com/niit/mybatis/config/SqlMapConfig.xml");
				//SqlSessionFactoryBuilder类提供了方法帮我们创建SqlSessionFactory的实例
				SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
				
				sqlSessionFactory=builder.build(inputStream);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	//创建获取SqlSessionFactory实例的方法
	public static SqlSessionFactory getSqlSessionFactory(){
		return sqlSessionFactory;
	}
	//创建会话工厂是为了获取会话实例,所以可以自己添加一个方法用于获取会话对象
	public static SqlSession openSession(){
		return sqlSessionFactory.openSession();
	}
}





com.niit.mybatis.test

Test01_GetOneStudent.java

package com.niit.mybatis.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * 
 *	MybatisUtil类,用于根据mybatis配置文件的配置创建会话工厂实例
 * <br>SqlSessionFactory
 * 
 *
 */
public class MyBatisUtil {
	
	private static SqlSessionFactory sqlSessionFactory;
	//在一个应用程序中,会话工厂只创建一个实例即可,可以考虑使用静态代码块实例化会话工厂
	static{
			try {
				//MyBatis提供了Resources类,可以加载外部资源文件
				//Resources类的getResourceAsStream()等方法可用于加载指定的资源文件,返回一个InputStream的对象,用于操作文件数据
				InputStream inputStream = Resources.getResourceAsStream("com/niit/mybatis/config/SqlMapConfig.xml");
				//SqlSessionFactoryBuilder类提供了方法帮我们创建SqlSessionFactory的实例
				SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
				
				sqlSessionFactory=builder.build(inputStream);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	//创建获取SqlSessionFactory实例的方法
	public static SqlSessionFactory getSqlSessionFactory(){
		return sqlSessionFactory;
	}
	//创建会话工厂是为了获取会话实例,所以可以自己添加一个方法用于获取会话对象
	public static SqlSession openSession(){
		return sqlSessionFactory.openSession();
	}
}





Test02_GetAll.java

package com.niit.mybatis.test;

import java.util.List;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.dao.imp.StudentDaoImp;
import com.niit.mybatis.pojo.Student;

public class Test02_GetAll {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentDao dao = new StudentDaoImp();
		List<Student> list = dao.getAll();
		for(Student s : list){
			System.out.println("--------------------------------------------------------------------");
			System.out.println(s);
		}
	}

}

Test03_GetAllByBatchName.java

package com.niit.mybatis.test;

import java.util.List;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.dao.imp.StudentDaoImp;
import com.niit.mybatis.pojo.Student;

public class Test03_GetAllByBatchName {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentDao dao = new StudentDaoImp();
		List<Student> list = dao.getStudentListByBatchName("19软件BD03");
		for(Student s : list){
			System.out.println("--------------------------------------------------------------------");
			System.out.println(s);
		}
	}
}

Test04_InsertOneStudent.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.dao.imp.StudentDaoImp;
import com.niit.mybatis.pojo.Student;

public class Test04_InsertOneStudent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentDao dao = new StudentDaoImp();
		Student s = new Student("888888", "dddd", "666666", "女", "20BD02");
		dao.insert(s);
		System.out.println("插入成功!");
	}

}

Test05_UpdateOneStudent.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.dao.imp.StudentDaoImp;
import com.niit.mybatis.pojo.Student;

public class Test05_UpdateOneStudent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentDao dao = new StudentDaoImp();
		Student s = new Student("888888", "ddddd", "999999", "女", "20BD03");
		dao.update(s);
		System.out.println("修改成功!");

	}

}

Test06_DeleteOneStudent.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.StudentDao;
import com.niit.mybatis.dao.imp.StudentDaoImp;

public class Test06_DeleteOneStudent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentDao dao = new StudentDaoImp();
		dao.deleteById("888888");
		System.out.println("删除成功!");

	}

}

Test07_GetOneProduct.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.dao.imp.ProductDaoImp;
import com.niit.mybatis.pojo.Product;

public class Test07_GetOneProduct {

	public static void main(String[] args) {
		ProductDao dao = new ProductDaoImp();
		Product p = dao.getOne("P003");
		System.out.println(p.getName());
		System.out.println(p);

	}

}

Test08_GetAllProduct.java

package com.niit.mybatis.test;

import java.util.List;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.dao.imp.ProductDaoImp;
import com.niit.mybatis.pojo.Product;

public class Test08_GetAllProduct {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProductDao dao = new ProductDaoImp();
		List<Product> list = dao.getAll();
		for(Product p : list){
			System.out.println(p);
		}

	}

}

Test09_InsertOneProduct.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.dao.imp.ProductDaoImp;
import com.niit.mybatis.pojo.Product;

public class Test09_InsertOneProduct {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProductDao dao = new ProductDaoImp();
		dao.insert(new Product("P008", "sdffsad", 10.5f, "包", 20, ""));
		System.out.println("插入成功!");

	}

}

Test10_UpdataOneProduct.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.dao.imp.ProductDaoImp;
import com.niit.mybatis.pojo.Product;

public class Test10_UpdataOneProduct {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProductDao dao = new ProductDaoImp();
		dao.update(new Product("P008", "薯条", 8.5f, "包", 10, ""));
		System.out.println("更新成功!");

	}

}

Test11_DeleteOneProduct.java

package com.niit.mybatis.test;

import com.niit.mybatis.dao.ProductDao;
import com.niit.mybatis.dao.imp.ProductDaoImp;

public class Test11_DeleteOneProduct {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProductDao dao = new ProductDaoImp();
		dao.delete("P008");
		System.out.println("删除成功!");

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值