入门及环境搭建
2023/3/8
MyBatis入门及环境搭建
数据库建库建表
创建数据库
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`name` varchar(20) NULL COMMENT '姓名' ,
`password` varchar(50) NULL COMMENT '密码' ,
`age` int NULL COMMENT '年龄' ,
`sex` char(255) NULL COMMENT '性别' ,
`email` varchar(50) NULL COMMENT '邮箱' ,
PRIMARY KEY (`id`)
);测试数据
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (1, '张三', '123', 58, '1', 'zhangsan@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (2, '李四', '456', 2, '0', 'lisi@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (3, '王五', '789', 10, '1', 'wangwu@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (4, '赵六', '123789', 20, '0', 'zhaoliu@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (5, '孙七', '123456789', 120, '1', 'sunqi@yahoo.com');更多测试数据(有需要可以插入)
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (6, '蒋金鑫', '9388994a-33a9-4719-bbd1-a9677f4ac391', 45, '1', 'willis.johns@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (7, '张楷瑞', '0949f235-35ad-4ca8-8392-b118bdd8976e', 26, '1', 'barry.cartwright@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (8, '刘嘉熙', 'e655d637-ed11-458c-a4a7-0fe394440138', 61, '0', 'mickey.satterfield@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (9, '孙明杰', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 27, '1', 'ardath.mayer@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (10, '郭健柏', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 45, '0', 'burt.parker@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (11, '李弘文', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 31, '1', 'dante.wolf@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (12, '谢旭尧', '04d90352-4bdc-4ed8-9962-c56a6c9bcc97', 37, '0', 'curt.macejkovic@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (13, '叶文', '9388994a-33a9-4719-bbd1-a9677f4ac391', 94, '1', 'william.donnelly@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (14, '陶彬', '0949f235-35ad-4ca8-8392-b118bdd8976e', 97, '1', 'santiago.gutmann@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (15, '金天翊', 'e655d637-ed11-458c-a4a7-0fe394440138', 20, '1', 'shanta.mertz@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (16, '贾文博', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 76, '1', 'concetta.wolff@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (17, '郭懿轩', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 81, '1', 'darwin.spencer@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (18, '徐文轩', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 60, '1', 'ricki.jast@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (19, '毛嘉懿', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 90, '0', 'jerome.harvey@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (20, '周聪健', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 73, '0', 'jenell.murphy@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (21, '何荣轩', '0949f235-35ad-4ca8-8392-b118bdd8976e', 44, '1', 'daren.damore@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (22, '韦烨伟', '212648dd-f050-49bf-a0bb-71688035be7a', 2, '0', 'randall.hermiston@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (23, '武智宸', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 84, '1', 'clinton.denesik@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (24, '郭懿轩', '212648dd-f050-49bf-a0bb-71688035be7a', 53, '1', 'alonso.dibbert@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (25, '叶伟祺', '212648dd-f050-49bf-a0bb-71688035be7a', 11, '0', 'christian.tremblay@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (26, '徐潇然', '0949f235-35ad-4ca8-8392-b118bdd8976e', 60, '1', 'woodrow.schuppe@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (27, '钱驰', '212648dd-f050-49bf-a0bb-71688035be7a', 1, '0', 'leonard.hammes@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (28, '江天宇', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 18, '1', 'kirk.hagenes@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (29, '蒋梓晨', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 58, '0', 'jewel.kuhlman@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (30, '尹明哲', '212648dd-f050-49bf-a0bb-71688035be7a', 49, '0', 'angel.heaney@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (31, '杜鑫磊', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 59, '0', 'marceline.haley@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (32, '孔潇然', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 23, '1', 'vi.muller@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (33, '贺潇然', '212648dd-f050-49bf-a0bb-71688035be7a', 24, '1', 'toni.cummings@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (34, '田昊强', '9388994a-33a9-4719-bbd1-a9677f4ac391', 90, '1', 'keira.wyman@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (35, '龙立果', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 85, '0', 'tifany.parker@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (36, '金涛', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 98, '1', 'robbie.ziemann@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (37, '丁文昊', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 28, '0', 'chas.dubuque@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (38, '程思', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 63, '1', 'miquel.windler@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (39, '龙雨泽', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 32, '0', 'kirby.berge@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (40, '丁涛', 'e655d637-ed11-458c-a4a7-0fe394440138', 45, '0', 'sarina.lesch@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (41, '陶锦程', '212648dd-f050-49bf-a0bb-71688035be7a', 42, '1', 'jeannetta.goyette@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (42, '杜鹏涛', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 56, '0', 'carmen.schoen@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (43, '周烨霖', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 27, '1', 'demetrius.connelly@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (44, '曾烨磊', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 2, '0', 'annett.balistreri@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (45, '蒋钰轩', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 11, '0', 'seth.christiansen@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (46, '尹鹏', 'e655d637-ed11-458c-a4a7-0fe394440138', 35, '1', 'elvin.borer@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (47, '陶峻熙', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 4, '0', 'mariella.brekke@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (48, '李懿轩', '212648dd-f050-49bf-a0bb-71688035be7a', 89, '1', 'pierre.reichert@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (49, '黄涛', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 11, '0', 'mario.hamill@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (50, '赖越彬', '8506b114-8117-4fcd-975e-12919cad6155', 63, '1', 'claire.bernier@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (51, '郭智辉', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 24, '0', 'marchelle.gislason@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (52, '萧晋鹏', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 88, '0', 'freeman.raynor@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (53, '孟天磊', '212648dd-f050-49bf-a0bb-71688035be7a', 4, '0', 'don.larson@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (54, '冯航', '9388994a-33a9-4719-bbd1-a9677f4ac391', 62, '0', 'sacha.fay@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (55, '曾伟祺', '04d90352-4bdc-4ed8-9962-c56a6c9bcc97', 87, '1', 'jacinto.abshire@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (56, '卢修洁', '04d90352-4bdc-4ed8-9962-c56a6c9bcc97', 42, '0', 'lavern.murazik@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (57, '邱智宸', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 60, '1', 'toney.lebsack@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (58, '苏涛', '212648dd-f050-49bf-a0bb-71688035be7a', 12, '1', 'ulysses.kohler@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (59, '孟立辉', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 61, '0', 'debera.lemke@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (60, '侯鹏涛', 'e655d637-ed11-458c-a4a7-0fe394440138', 89, '0', 'lavina.oreilly@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (61, '段明杰', '0949f235-35ad-4ca8-8392-b118bdd8976e', 57, '0', 'sherwood.stamm@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (62, '胡皓轩', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 56, '0', 'kathline.bahringer@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (63, '段君浩', 'e655d637-ed11-458c-a4a7-0fe394440138', 53, '0', 'wan.rice@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (64, '贺修洁', '8506b114-8117-4fcd-975e-12919cad6155', 84, '0', 'jospeh.price@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (65, '蒋伟宸', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 88, '1', 'kenny.veum@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (66, '傅嘉熙', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 9, '1', 'rosella.roob@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (67, '宋荣轩', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 15, '0', 'larita.hand@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (68, '宋雨泽', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 45, '1', 'halley.runte@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (69, '邱烨华', '0949f235-35ad-4ca8-8392-b118bdd8976e', 67, '0', 'jamar.larkin@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (70, '魏荣轩', '8506b114-8117-4fcd-975e-12919cad6155', 34, '0', 'daniel.daugherty@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (71, '毛煜城', '9388994a-33a9-4719-bbd1-a9677f4ac391', 8, '0', 'trenton.lindgren@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (72, '于哲瀚', '9388994a-33a9-4719-bbd1-a9677f4ac391', 48, '0', 'nicolas.mueller@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (73, '贺智宸', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 21, '1', 'dario.mcglynn@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (74, '周煜城', '8506b114-8117-4fcd-975e-12919cad6155', 50, '0', 'mason.schmitt@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (75, '宋伟宸', '8506b114-8117-4fcd-975e-12919cad6155', 19, '0', 'colin.denesik@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (76, '廖昊天', '04d90352-4bdc-4ed8-9962-c56a6c9bcc97', 100, '1', 'racheal.rice@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (77, '曾皓轩', '04d90352-4bdc-4ed8-9962-c56a6c9bcc97', 48, '0', 'haywood.howe@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (78, '杨越彬', '9388994a-33a9-4719-bbd1-a9677f4ac391', 12, '0', 'tyrell.beier@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (79, '龙靖琪', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 53, '0', 'nicky.strosin@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (80, '洪鹤轩', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 2, '0', 'candi.cassin@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (81, '丁晋鹏', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 83, '1', 'geraldo.crooks@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (82, '邹伟祺', 'e655d637-ed11-458c-a4a7-0fe394440138', 94, '0', 'vashti.mcglynn@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (83, '杨睿渊', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 70, '1', 'faustino.kshlerin@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (84, '廖立辉', '8506b114-8117-4fcd-975e-12919cad6155', 93, '1', 'jina.schmitt@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (85, '吴楷瑞', 'e655d637-ed11-458c-a4a7-0fe394440138', 78, '1', 'mabelle.hessel@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (86, '侯金鑫', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 5, '0', 'lowell.auer@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (87, '罗懿轩', 'e655d637-ed11-458c-a4a7-0fe394440138', 22, '1', 'barrie.price@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (88, '段鹏涛', '9388994a-33a9-4719-bbd1-a9677f4ac391', 89, '0', 'janae.schimmel@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (89, '秦晟睿', '0949f235-35ad-4ca8-8392-b118bdd8976e', 26, '1', 'johnny.predovic@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (90, '苏思淼', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 41, '0', 'sebastian.batz@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (91, '苏金鑫', 'b2739ce2-bafd-406b-bc1c-16744326a5c5', 6, '0', 'arnoldo.schroeder@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (92, '袁伟祺', '0949f235-35ad-4ca8-8392-b118bdd8976e', 16, '0', 'darin.kunde@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (93, '罗明', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 58, '0', 'stewart.mccullough@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (94, '余明杰', '8506b114-8117-4fcd-975e-12919cad6155', 75, '1', 'marjorie.greenfelder@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (95, '刘雨泽', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 92, '0', 'towanda.gorczany@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (96, '吴乐驹', '0949f235-35ad-4ca8-8392-b118bdd8976e', 19, '0', 'reginald.cronin@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (97, '崔越彬', '9388994a-33a9-4719-bbd1-a9677f4ac391', 55, '1', 'tanner.monahan@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (98, '谢立轩', '212648dd-f050-49bf-a0bb-71688035be7a', 21, '1', 'cleotilde.kuphal@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (99, '武志强', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 87, '1', 'alysia.friesen@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (100, '徐梓晨', '9388994a-33a9-4719-bbd1-a9677f4ac391', 5, '0', 'joesph.wisoky@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (101, '韩绍辉', 'f2b3d1e5-59b6-4a03-a9b6-a0d4bbc41d48', 69, '0', 'marc.mann@hotmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (102, '廖皓轩', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 22, '0', 'cruz.kiehn@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (103, '钟思淼', '7d204bc5-3798-4bcd-91ee-36f885e5a853', 88, '1', 'lashunda.mcdermott@gmail.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (104, '白烨磊', 'c9863f8b-58cd-4e5a-87fa-912580d16d9a', 67, '0', 'neil.welch@yahoo.com');
insert into `user` (`id`, `name`, `password`, `age`, `sex`, `email`) values (105, '余明', '0949f235-35ad-4ca8-8392-b118bdd8976e', 59, '0', 'allegra.witting@yahoo.com');创建项目
创建SpringBoot工程
引入依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.16</version> </dependency> </dependencies>配置文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=UTF-8
username: username
password: password
mybatis:
type-aliases-package: com.eam.pojo
mapper-locations: classpath:mapper/*.xml
logging:
file:
name: log/log.log
level:
root: info
com.lgn: debug创建实体类
package com.lgn.mybatis.pojo;
import lombok.Data;
import java.io.Serializable;
@Data
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String password;
private Integer age;
private String sex;
private String email;
}创建Mapper接口
package com.lgn.mybatis.mapper;
import com.lgn.mybatis.pojo.User;
import java.util.List;
public interface UserMapper {
Integer addUser();
Integer updateUser();
Integer deleteUser();
User getUserById();
List<User> getAllUsers();
}创建Mapper映射文件
- 相关概念:ORM(Object Relationship Mapping)对象关系映射。
- 对象:Java的实体类对象
- 关系:关系型数据库
- 映射:二者之间的对应关系
| Java概念 | 数据库概念 |
|---|---|
| 类 | 表 |
| 属性 | 字段/列 |
| 对象 | 记录/行 |
- 映射文件的命名规则
- 表所对应的实体类的类名+Mapper.xml
- 例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml
- 因此一个映射文件对应一个实体类,对应一张表的操作
- MyBatis映射文件用于编写SQL,访问以及操作表中的数据
- MyBatis映射文件存放的位置是src/main/resources/mappers目录下
- MyBatis中可以面向接口操作数据,要保证两个一致
- mapper接口的全类名和映射文件的命名空间(namespace)保持一致
- mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lgn.mybatis.mapper.UserMapper">
<!-- 添加方法 -->
<insert id="addUser">
INSERT INTO user (`name`, `password`, `age`, `sex`, `email`) VALUES ('测试用户1','123pwd', 24,'0','csyh01@163.com');
</insert>
<!-- 更新功能 -->
<update id="updateUser">
UPDATE user SET password='123123123pwd' WHERE id = 5;
</update>
<!-- 删除功能 -->
<delete id="deleteUser">
DELETE FROM user WHERE id = 5;
</delete>
<select id="getUserById" resultType="com.lgn.mybatis.pojo.User">
SELECT * FROM user WHERE id = 5;
</select>
<select id="getAllUsers" resultType="com.lgn.mybatis.pojo.User">
SELECT * FROM user;
</select>
</mapper>创建Mybatis核心配置文件
习惯上命名为
mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合Spring之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
核心配置文件存放的位置是src/main/resources目录下
<?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>
<!--设置连接数据库的环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mystudy-mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>测试
编写测试类
package com.lgn.mybatis.mapper;
import com.lgn.mybatis.pojo.User;
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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class UserMapperTest {
@Test
public void testAddUserTest() throws IOException {
//读取MyBatis的核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取sqlSession,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务
//SqlSession sqlSession = sqlSessionFactory.openSession();
//创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//通过代理模式创建UserMapper接口的代理实现类对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,通过调用的方法名匹配映射文件中的SQL标签,并执行标签中的SQL语句
Integer result = userMapper.addUser();
//提交事务
//sqlSession.commit();
System.out.println("受影响的行数:" + result);
}
@Test
public void testCRUD() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer result = userMapper.updateUser();
System.err.println("更新用户------> 受影响行数:" + result);
User user = userMapper.getUserById();
System.err.println("查询用户-------> 用户信息:" + user);
Integer deleteCount = userMapper.deleteUser();
System.err.println("删除用户-------> 受影响行数:" + deleteCount);
List<User> allUsers = userMapper.getAllUsers();
System.err.println("查询全部用户----> 用户信息如下:");
allUsers.forEach(u -> System.err.println(u));
}
}注意: MyBatis默认不会自动提交事务,需要手动提交事务。
如果要自动提交事务,则在获取sqlSession对象时,使用SqlSession sqlSession = sqlSessionFactory.openSession(true);,传入一个Boolean类型的参数,值为true,这样就可以自动提交
执行测试
查看控制台输出
- 测试1

- 测试2

