写下本文的意义:在于可以为正在学习Mybatis动态SQL的同学提供一些资料和参考答案
手握命运,面向未来!星光不负赶路人!
一 环境准备
1.1 用到的工具
IDEA
Lombok插件
Mysql数据库
maven环境
1.2 用到的数据库源码
` smbms_provider``smbms_bill` CREATE TABLE ` teacher` (
` id` INT ( 10 ) NOT NULL ,
` name` VARCHAR ( 30 ) DEFAULT NULL ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO teacher( ` id` , ` name` ) VALUES ( 1 , '秦老师' ) ;
CREATE TABLE ` student` (
` id` INT ( 10 ) NOT NULL ,
` name` VARCHAR ( 30 ) DEFAULT NULL ,
` tid` INT ( 10 ) DEFAULT NULL ,
PRIMARY KEY ( ` id` ) ,
KEY ` fktid` ( ` tid` ) ,
CONSTRAINT ` fktid` FOREIGN KEY ( ` tid` ) REFERENCES ` teacher` ( ` id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO ` student` ( ` id` , ` name` , ` tid` ) VALUES ( '1' , '小明' , '1' ) ;
INSERT INTO ` student` ( ` id` , ` name` , ` tid` ) VALUES ( '2' , '小红' , '1' ) ;
INSERT INTO ` student` ( ` id` , ` name` , ` tid` ) VALUES ( '3' , '小张' , '1' ) ;
INSERT INTO ` student` ( ` id` , ` name` , ` tid` ) VALUES ( '4' , '小李' , '1' ) ;
INSERT INTO ` student` ( ` id` , ` name` , ` tid` ) VALUES ( '5' , '小王' , '1' ) ;
CREATE TABLE ` blog` (
` id` VARCHAR ( 50 ) NOT NULL COMMENT '博客id' ,
` title` VARCHAR ( 100 ) NOT NULL COMMENT '博客标题' ,
` author` VARCHAR ( 30 ) NOT NULL COMMENT '博客作者' ,
` create_time` DATETIME NOT NULL COMMENT '创建时间' ,
` views` INT ( 30 ) NOT NULL COMMENT '浏览量'
) ENGINE = INNODB DEFAULT CHARSET = utf8;
CREATE DATABASE smbms;
USE ` smbms` ;
DROP TABLE IF EXISTS ` smbms_address` ;
CREATE TABLE ` smbms_address` (
` id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
` contact` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人姓名' ,
` addressDesc` VARCHAR ( 50 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '收货地址明细' ,
` postCode` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '邮编' ,
` tel` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人电话' ,
` createdBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '创建者' ,
` creationDate` DATETIME DEFAULT NULL COMMENT '创建时间' ,
` modifyBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '修改者' ,
` modifyDate` DATETIME DEFAULT NULL COMMENT '修改时间' ,
` userId` BIGINT ( 20 ) DEFAULT NULL COMMENT '用户ID' ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB AUTO_INCREMENT = 7 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
INSERT INTO ` smbms_address` ( ` id` , ` contact` , ` addressDesc` , ` postCode` , ` tel` , ` createdBy` , ` creationDate` , ` modifyBy` , ` modifyDate` , ` userId` )
VALUES ( 1 , '王丽' , '北京市东城区东交民巷44号' , '100010' , '13678789999' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 1 ) ,
( 2 , '张红丽' , '北京市海淀区丹棱街3号' , '100000' , '18567672312' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 1 ) ,
( 3 , '任志强' , '北京市东城区美术馆后街23号' , '100021' , '13387906742' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 1 ) ,
( 4 , '曹颖' , '北京市朝阳区朝阳门南大街14号' , '100053' , '13568902323' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 2 ) ,
( 5 , '李慧' , '北京市西城区三里河路南三巷3号' , '100032' , '18032356666' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 3 ) ,
( 6 , '王国强' , '北京市顺义区高丽营镇金马工业区18号' , '100061' , '13787882222' , 1 , '2016-04-13 00:00:00' , NULL , NULL , 3 ) ;
DROP TABLE IF EXISTS ` smbms_bill` ;
CREATE TABLE ` smbms_bill` (
` id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
` billCode` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '账单编码' ,
` productName` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品名称' ,
` productDesc` VARCHAR ( 50 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品描述' ,
` productUnit` VARCHAR ( 10 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品单位' ,
` productCount` DECIMAL ( 20 , 2 ) DEFAULT NULL COMMENT '商品数量' ,
` totalPrice` DECIMAL ( 20 , 2 ) DEFAULT NULL COMMENT '商品总额' ,
` isPayment` INT ( 10 ) DEFAULT NULL COMMENT '是否支付(1:未支付 2:已支付)' ,
` createdBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '创建者(userId)' ,
` creationDate` DATETIME DEFAULT NULL COMMENT '创建时间' ,
` modifyBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '更新者(userId)' ,
` modifyDate` DATETIME DEFAULT NULL COMMENT '更新时间' ,
` providerId` BIGINT ( 20 ) DEFAULT NULL COMMENT '供应商ID' ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB AUTO_INCREMENT = 19 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
INSERT INTO ` smbms_bill` ( ` id` , ` billCode` , ` productName` , ` productDesc` , ` productUnit` , ` productCount` ,
` totalPrice` , ` isPayment` , ` createdBy` , ` creationDate` , ` modifyBy` , ` modifyDate` , ` providerId` )
VALUES ( 2 , 'BILL2016_002' , '香皂、肥皂、药皂' , '日用品-皂类' , '块' , '1000.00' , '10000.00' , 2 , 1 , '2016-03-23 04:20:40' , NULL , NULL , 13 ) ,
( 3 , 'BILL2016_003' , '大豆油' , '食品-食用油' , '斤' , '300.00' , '5890.00' , 2 , 1 , '2014-12-14 13:02:03' , NULL , NULL , 6 ) ,
( 4 , 'BILL2016_004' , '橄榄油' , '食品-进口食用油' , '斤' , '200.00' , '9800.00' , 2 , 1 , '2013-10-10 03:12:13' , NULL , NULL , 7 ) ,
( 5 , 'BILL2016_005' , '洗洁精' , '日用品-厨房清洁' , '瓶' , '500.00' , '7000.00' , 2 , 1 , '2014-12-14 13:02:03' , NULL , NULL , 9 ) ,
( 6 , 'BILL2016_006' , '美国大杏仁' , '食品-坚果' , '袋' , '300.00' , '5000.00' , 2 , 1 , '2016-04-14 06:08:09' , NULL , NULL , 4 ) ,
( 7 , 'BILL2016_007' , '沐浴液、精油' , '日用品-沐浴类' , '瓶' , '500.00' , '23000.00' , 1 , 1 , '2016-07-22 10:10:22' , NULL , NULL , 14 ) ,
( 8 , 'BILL2016_008' , '不锈钢盘碗' , '日用品-厨房用具' , '个' , '600.00' , '6000.00' , 2 , 1 , '2016-04-14 05:12:13' , NULL , NULL , 14 ) ,
( 9 , 'BILL2016_009' , '塑料杯' , '日用品-杯子' , '个' , '350.00' , '1750.00' , 2 , 1 , '2016-02-04 11:40:20' , NULL , NULL , 14 ) ,
( 10 , 'BILL2016_010' , '豆瓣酱' , '食品-调料' , '瓶' , '200.00' , '2000.00' , 2 , 1 , '2013-10-29 05:07:03' , NULL , NULL , 8 ) ,
( 11 , 'BILL2016_011' , '海之蓝' , '饮料-国酒' , '瓶' , '50.00' , '10000.00' , 1 , 1 , '2016-04-14 16:16:00' , NULL , NULL , 1 ) ,
( 12 , 'BILL2016_012' , '芝华士' , '饮料-洋酒' , '瓶' , '20.00' , '6000.00' , 1 , 1 , '2016-09-09 17:00:00' , NULL , NULL , 1 ) ,
( 13 , 'BILL2016_013' , '长城红葡萄酒' , '饮料-红酒' , '瓶' , '60.00' , '800.00' , 2 , 1 , '2016-11-14 15:23:00' , NULL , NULL , 1 ) ,
( 14 , 'BILL2016_014' , '泰国香米' , '食品-大米' , '斤' , '400.00' , '5000.00' , 2 , 1 , '2016-10-09 15:20:00' , NULL , NULL , 3 ) ,
( 15 , 'BILL2016_015' , '东北大米' , '食品-大米' , '斤' , '600.00' , '4000.00' , 2 , 1 , '2016-11-14 14:00:00' , NULL , NULL , 3 ) ,
( 16 , 'BILL2016_016' , '可口可乐' , '饮料' , '瓶' , '2000.00' , '6000.00' , 2 , 1 , '2012-03-27 13:03:01' , NULL , NULL , 2 ) ,
( 17 , 'BILL2016_017' , '脉动' , '饮料' , '瓶' , '1500.00' , '4500.00' , 2 , 1 , '2016-05-10 12:00:00' , NULL , NULL , 2 ) ,
( ` smbms_provider` ) ;
DROP TABLE IF EXISTS ` smbms_provider` ;
CREATE TABLE ` smbms_provider` (
` id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
` proCode` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商编码' ,
` proName` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商名称' ,
` proDesc` VARCHAR ( 50 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商详细描述' ,
` proContact` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商联系人' ,
` proPhone` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系电话' ,
` proAddress` VARCHAR ( 50 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '地址' ,
` proFax` VARCHAR ( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '传真' ,
` createdBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '创建者(userId)' ,
` creationDate` DATETIME DEFAULT NULL COMMENT '创建时间' ,
` modifyDate` DATETIME DEFAULT NULL COMMENT '更新时间' ,
` modifyBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '更新者(userId)' ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB AUTO_INCREMENT = 16 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
INSERT INTO ` smbms_provider` ( ` id` , ` proCode` , ` proName` , ` proDesc` , ` proContact` , ` proPhone` , ` proAddress` , ` proFax` ,
` createdBy` , ` creationDate` , ` modifyDate` , ` modifyBy` )
VALUES ( 1 , 'BJ_GYS001' , '北京三木堂商贸有限公司' , '长期合作伙伴,主营产品:茅台、五粮液、郎酒、酒鬼酒、泸州老窖、赖茅酒、法国红酒等' , '张国强' , '13566667777' , '北京市丰台区育芳园北路' , '010-58858787' , 1 , '2013-03-21 16:52:07' , NULL , NULL ) ,
( 2 , 'HB_GYS001' , '石家庄帅益食品贸易有限公司' , '长期合作伙伴,主营产品:饮料、水饮料、植物蛋白饮料、休闲食品、果汁饮料、功能饮料等' , '王军' , '13309094212' , '河北省石家庄新华区' , '0311-67738876' , 1 , '2016-04-13 04:20:40' , NULL , NULL ) ,
( 3 , 'GZ_GYS001' , '深圳市泰香米业有限公司' , '初次合作伙伴,主营产品:良记金轮米,龙轮香米等' , '郑程瀚' , '13402013312' , '广东省深圳市福田区深南大道6006华丰大厦' , '0755-67776212' , 1 , '2014-03-21 16:56:07' , NULL , NULL ) ,
( 4 , 'GZ_GYS002' , '深圳市喜来客商贸有限公司' , '长期合作伙伴,主营产品:坚果炒货.果脯蜜饯.天然花茶.营养豆豆.特色美食.进口食品.海味零食.肉脯肉' , '林妮' , '18599897645' , '广东省深圳市福龙工业区B2栋3楼西' , '0755-67772341' , 1 , '2013-03-22 16:52:07' , NULL , NULL ) ,
( 5 , 'JS_GYS001' , '兴化佳美调味品厂' , '长期合作伙伴,主营产品:天然香辛料、鸡精、复合调味料' , '徐国洋' , '13754444221' , '江苏省兴化市林湖工业区' , '0523-21299098' , 1 , '2015-11-22 16:52:07' , NULL , NULL ) ,
( 6 , 'BJ_GYS002' , '北京纳福尔食用油有限公司' , '长期合作伙伴,主营产品:山茶油、大豆油、花生油、橄榄油等' , '马莺' , '13422235678' , '北京市朝阳区珠江帝景1号楼' , '010-588634233' , 1 , '2012-03-21 17:52:07' , NULL , NULL ) ,
( 7 , 'BJ_GYS003' , '北京国粮食用油有限公司' , '初次合作伙伴,主营产品:花生油、大豆油、小磨油等' , '王驰' , '13344441135' , '北京大兴青云店开发区' , '010-588134111' , 1 , '2016-04-13 00:00:00' , NULL , NULL ) ,
( 8 , 'ZJ_GYS001' , '慈溪市广和绿色食品厂' , '长期合作伙伴,主营产品:豆瓣酱、黄豆酱、甜面酱,辣椒,大蒜等农产品' , '薛圣丹' , '18099953223' , '浙江省宁波市慈溪周巷小安村' , '0574-34449090' , 1 , '2013-11-21 06:02:07' , NULL , NULL ) ,
( 9 , 'GX_GYS001' , '优百商贸有限公司' , '长期合作伙伴,主营产品:日化产品' , '李立国' , '13323566543' , '广西南宁市秀厢大道42-1号' , '0771-98861134' , 1 , '2013-03-21 19:52:07' , NULL , NULL ) ,
( 10 , 'JS_GYS002' , '南京火头军信息技术有限公司' , '长期合作伙伴,主营产品:不锈钢厨具等' , '陈女士' , '13098992113' , '江苏省南京市浦口区浦口大道1号新城总部大厦A座903室' , '025-86223345' , 1 , '2013-03-25 16:52:07' , NULL , NULL ) ,
( 11 , 'GZ_GYS003' , '广州市白云区美星五金制品厂' , '长期合作伙伴,主营产品:海绵床垫、坐垫、靠垫、海绵枕头、头枕等' , '梁天' , '13562276775' , '广州市白云区钟落潭镇福龙路20号' , '020-85542231' , 1 , '2016-12-21 06:12:17' , NULL , NULL ) ,
( 12 , 'BJ_GYS004' , '北京隆盛日化科技' , '长期合作伙伴,主营产品:日化环保清洗剂,家居洗涤专卖、洗涤用品网、墙体除霉剂、墙面霉菌清除剂等' , '孙欣' , '13689865678' , '北京市大兴区旧宫' , '010-35576786' , 1 , '2014-11-21 12:51:11' , NULL , NULL ) ,
( 13 , 'SD_GYS001' , '山东豪克华光联合发展有限公司' , '长期合作伙伴,主营产品:洗衣皂、洗衣粉、洗衣液、洗洁精、消杀类、香皂等' , '吴洪转' , '13245468787' , '山东济阳济北工业区仁和街21号' , '0531-53362445' , 1 , '2015-01-28 10:52:07' , NULL , NULL ) ,
( 14 , 'JS_GYS003' , '无锡喜源坤商行' , '长期合作伙伴,主营产品:日化品批销' , '周一清' , '18567674532' , '江苏无锡盛岸西路' , '0510-32274422' , 1 , '2016-04-23 11:11:11' , NULL , NULL ) ,
( 15 , 'ZJ_GYS002' , '乐摆日用品厂' , '长期合作伙伴,主营产品:各种中、高档塑料杯,塑料乐扣水杯(密封杯)、保鲜杯(保鲜盒)、广告杯、礼品杯' , '王世杰' , '13212331567' , '浙江省金华市义乌市义东路' , '0579-34452321' , 1 , '2016-08-22 10:01:30' , NULL , NULL ) ;
DROP TABLE IF EXISTS ` smbms_role` ;
CREATE TABLE ` smbms_role` (
` id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
` roleCode` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '角色编码' ,
` roleName` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '角色名称' ,
` createdBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '创建者' ,
` creationDate` DATETIME DEFAULT NULL COMMENT '创建时间' ,
` modifyBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '修改者' ,
` modifyDate` DATETIME DEFAULT NULL COMMENT '修改时间' ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
INSERT INTO ` smbms_role` ( ` id` , ` roleCode` , ` roleName` , ` createdBy` , ` creationDate` , ` modifyBy` , ` modifyDate` )
VALUES ( 1 , 'SMBMS_ADMIN' , '系统管理员' , 1 , '2016-04-13 00:00:00' , NULL , NULL ) ,
( 2 , 'SMBMS_MANAGER' , '经理' , 1 , '2016-04-13 00:00:00' , NULL , NULL ) ,
( 3 , 'SMBMS_EMPLOYEE' , '普通员工' , 1 , '2016-04-13 00:00:00' , NULL , NULL ) ;
DROP TABLE IF EXISTS ` smbms_user` ;
CREATE TABLE ` smbms_user` (
` id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
` userCode` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户编码' ,
` userName` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户名称' ,
` userPassword` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户密码' ,
` gender` INT ( 10 ) DEFAULT NULL COMMENT '性别(1:女、 2:男)' ,
` birthday` DATE DEFAULT NULL COMMENT '出生日期' ,
` phone` VARCHAR ( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机' ,
` address` VARCHAR ( 30 ) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '地址' ,
` userRole` BIGINT ( 20 ) DEFAULT NULL COMMENT '用户角色(取自角色表-角色id)' ,
` createdBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '创建者(userId)' ,
` creationDate` DATETIME DEFAULT NULL COMMENT '创建时间' ,
` modifyBy` BIGINT ( 20 ) DEFAULT NULL COMMENT '更新者(userId)' ,
` modifyDate` DATETIME DEFAULT NULL COMMENT '更新时间' ,
PRIMARY KEY ( ` id` )
) ENGINE = INNODB AUTO_INCREMENT = 16 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
INSERT INTO ` smbms_user` ( ` id` , ` userCode` , ` userName` , ` userPassword` , ` gender` , ` birthday` ,
` phone` , ` address` , ` userRole` , ` createdBy` , ` creationDate` , ` modifyBy` , ` modifyDate` )
VALUES ( 1 , 'admin' , '系统管理员' , '1234567' , 1 , '1983-10-10' , '13688889999' , '北京市海淀区成府路207号' , 1 , 1 , '2013-03-21 16:52:07' , NULL , NULL ) ,
( 2 , 'liming' , '李明' , '0000000' , 2 , '1983-12-10' , '13688884457' , '北京市东城区前门东大街9号' , 2 , 1 , '2014-12-31 19:52:09' , NULL , NULL ) ,
( 5 , 'hanlubiao' , '韩路彪' , '0000000' , 2 , '1984-06-05' , '18567542321' , '北京市朝阳区北辰中心12号' , 2 , 1 , '2014-12-31 19:52:09' , NULL , NULL ) ,
( 6 , 'zhanghua' , '张华' , '0000000' , 1 , '1983-06-15' , '13544561111' , '北京市海淀区学院路61号' , 3 , 1 , '2013-02-11 10:51:17' , NULL , NULL ) ,
( 7 , 'wangyang' , '王洋' , '0000000' , 2 , '1982-12-31' , '13444561124' , '北京市海淀区西二旗辉煌国际16层' , 3 , 1 , '2014-06-11 19:09:07' , NULL , NULL ) ,
( 8 , 'zhaoyan' , '赵燕' , '0000000' , 1 , '1986-03-07' , '18098764545' , '北京市海淀区回龙观小区10号楼' , 3 , 1 , '2016-04-21 13:54:07' , NULL , NULL ) ,
( 10 , 'sunlei' , '孙磊' , '0000000' , 2 , '1981-01-04' , '13387676765' , '北京市朝阳区管庄新月小区12楼' , 3 , 1 , '2015-05-06 10:52:07' , NULL , NULL ) ,
( 11 , 'sunxing' , '孙兴' , '0000000' , 2 , '1978-03-12' , '13367890900' , '北京市朝阳区建国门南大街10号' , 3 , 1 , '2016-11-09 16:51:17' , NULL , NULL ) ,
( 12 , 'zhangchen' , '张晨' , '0000000' , 1 , '1986-03-28' , '18098765434' , '朝阳区管庄路口北柏林爱乐三期13号楼' , 3 , 1 , '2016-08-09 05:52:37' , 1 , '2016-04-14 14:15:36' ) ,
( 13 , 'dengchao' , '邓超' , '0000000' , 2 , '1981-11-04' , '13689674534' , '北京市海淀区北航家属院10号楼' , 3 , 1 , '2016-07-11 08:02:47' , NULL , NULL ) ,
( 14 , 'yangguo' , '杨过' , '0000000' , 2 , '1980-01-01' , '13388886623' , '北京市朝阳区北苑家园茉莉园20号楼' , 3 , 1 , '2015-02-01 03:52:07' , NULL , NULL ) ,
( 15 , 'zhaomin' , '赵敏' , '0000000' , 1 , '1987-12-04' , '18099897657' , '北京市昌平区天通苑3区12号楼' , 2 , 1 , '2015-09-12 12:02:12' , NULL , NULL ) ;
CREATE DATABASE ` ssmbuild` ;
USE ` ssmbuild` ;
DROP TABLE IF EXISTS ` books` ;
CREATE TABLE ` books` (
` bookID` INT ( 10 ) NOT NULL AUTO_INCREMENT COMMENT '书id' ,
` bookName` VARCHAR ( 100 ) NOT NULL COMMENT '书名' ,
` bookCounts` INT ( 11 ) NOT NULL COMMENT '数量' ,
` detail` VARCHAR ( 200 ) NOT NULL COMMENT '描述' ,
KEY ` bookID` ( ` bookID` )
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO ` books` ( ` bookID` , ` bookName` , ` bookCounts` , ` detail` ) VALUES
( 1 , 'Java' , 1 , '从入门到放弃' ) ,
( 2 , 'MySQL' , 10 , '从删库到跑路' ) ,
( 3 , 'Linux' , 5 , '从进门到进牢' ) ;
三 完整参考内容
练习之前创建maven项目,并确保成功连接到数据库
3.1 项目结构
这里采用图片展示的方式来说明
3.2 pom.xml文件配置
< build>
< resources>
< resource>
< directory> src/main/java</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> true</ filtering>
</ resource>
< resource>
< directory> src/main/resources</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> true</ filtering>
</ resource>
</ resources>
</ build>
< dependencies>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> 8.0.29</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> 3.5.6</ version>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.11</ version>
</ dependency>
< dependency>
< groupId> org.projectlombok</ groupId>
< artifactId> lombok</ artifactId>
< version> 1.18.24</ version>
< scope> provided</ scope>
</ dependency>
</ dependencies>
3.3 mybatis-config.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 = " db.properties" />
< settings>
< setting name = " logImpl" value = " STDOUT_LOGGING" />
< setting name = " mapUnderscoreToCamelCase" value = " true" />
</ settings>
< typeAliases>
< package name = " com.yang.pojo" />
</ typeAliases>
< 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>
< package name = " com.yang.dao" />
</ mappers>
</ configuration>
3.4 db.properties
driver和url的内容在连接Mysql5.0和Mysql8.0有所不同
driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/smbms?useSSL= true& useUnicode = true& characterEncoding = UTF-8& serverTimezone = UTC
username = root
password = xxxxx
3.5 MybatisUtils.java文件配置
SqlSessionFactory–>SqlSession
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 MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml" ;
InputStream inputStream = Resources . getResourceAsStream ( resource) ;
sqlSessionFactory = new SqlSessionFactoryBuilder ( ) . build ( inputStream) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
public static SqlSession getSession ( )
{
return sqlSessionFactory. openSession ( true ) ;
}
}
3.6 实体类
3.6.1 Bill
import lombok. AllArgsConstructor ;
import lombok. Data ;
import lombok. NoArgsConstructor ;
import java. math. BigDecimal ;
import java. sql. Date ;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Bill {
private Integer id;
private String billCode;
private String productName;
private String productDesc;
private String productUnit;
private BigDecimal productCount;
private BigDecimal totalPrice;
private Integer isPayment;
private Integer providerId;
private Integer createdBy;
private Date creationDate;
private Integer modifyBy;
private Date modifyDate;
private String providerName;
}
3.6.2 Provider
import lombok. AllArgsConstructor ;
import lombok. Data ;
import lombok. NoArgsConstructor ;
import java. sql. Date ;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Provider {
private Integer id;
private String proCode;
private String proName;
private String proDesc;
private String proContact;
private String proPhone;
private String proAddress;
private String proFax;
private Integer createdBy;
private Date creationDate;
private Date modifyDate;
private Integer modifyBy;
}
3.6.3 Role
import lombok. AllArgsConstructor ;
import lombok. Data ;
import lombok. NoArgsConstructor ;
import java. sql. Date ;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Role {
private Integer id;
private String roleCode;
private String roleName;
private Integer createdBy;
private Date creationDate;
private Integer modifyBy;
private Date modifyDate;
}
3.6.4 User
import lombok. AllArgsConstructor ;
import lombok. Data ;
import lombok. NoArgsConstructor ;
import java. sql. Date ;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String userCode;
private String userName;
private String userPassword;
private Integer gender;
private Date birthday;
private String phone;
private String address;
private Integer userRole;
private Integer createdBy;
private Date creationDate;
private Integer modifyBy;
private Date modifyDate;
private Integer age;
private String userRoleName;
}
3.7 Bill相关练习题
3.7.1 Bill接口
import com. yang. pojo. Bill ;
import org. apache. ibatis. annotations. Param ;
import java. math. BigInteger ;
import java. util. List ;
public interface BillMapper {
int getBillCountByProviderId ( @Param ( "providerId" ) Integer providerId) ;
int add ( Bill bill) ;
List < Bill > getBillList ( @Param ( "productName" ) String productName,
@Param ( "providerId" ) String providerId,
@Param ( "isPayment" ) String isPayment,
@Param ( "from" ) Integer from,
@Param ( "pageSize" ) Integer pageSize) ;
int getBillCount ( @Param ( "productName" ) String productName,
@Param ( "providerId" ) int providerId,
@Param ( "isPayment" ) int isPayment) ;
int deleteBillById ( @Param ( "id" ) Integer id) ;
Bill getBillById ( @Param ( "id" ) Integer id) ;
int modify ( Bill bill) ;
int deleteBillByProviderId ( @Param ( "providerId" ) Integer providerId) ;
}
3.7.2 BillMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
< mapper namespace = " com.yang.dao.Bill.BillMapper" >
< select id = " getBillCountByProviderId" resultType = " java.lang.Integer" parameterType = " integer" >
select count(*) from smbms_bill where providerId=#{providerId};
</ select>
< insert id = " add" parameterType = " bill" >
insert into smbms.smbms_bill (id,billCode,productName,productDesc,productUnit,
productCount,totalPrice,isPayment,providerId,
createdBy,creationDate)
values
(#{id},#{billCode},#{productName},#{productDesc},#{productUnit},
#{productCount},#{totalPrice},#{isPayment},#{providerId},#{createdBy},#{creationDate})
</ insert>
< select id = " getBillList" resultType = " bill" >
select * from smbms.smbms_bill
< where>
< if test = " productName !=null" >
and productName like concat ('%',#{productName},'%')
</ if>
< if test = " providerId !=null" >
and providerId like concat('%',#{providerId},'%')
</ if>
< if test = " isPayment !=null" >
and isPayment like concat ('%',#{isPayment},'%')
</ if>
</ where>
limit #{from},#{pageSize}
</ select>
< select id = " getBillCount" resultType = " int" >
select count(1) from smbms_bill b,smbms_provider p
< where>
b.providerId=p.id
< if test = " productName != null and productName != ''" >
and productName like concat ('%',#{productName},'%')
</ if>
< if test = " providerId != null" >
and providerId = #{providerId}
</ if>
< if test = " isPayment != null" >
and isPayment = #{isPayment}
</ if>
</ where>
</ select>
< delete id = " deleteBillById" parameterType = " Integer" >
delete from smbms_bill where id=#{id}
</ delete>
< select id = " getBillById" parameterType = " Integer" resultType = " bill" >
select * from smbms_bill where id=#{id}
</ select>
< update id = " modify" parameterType = " bill" >
update smbms_bill
< set>
< if test = " productName!=null" > productName=#{productName}</ if>
</ set>
< where>
id=#{id}
</ where>
</ update>
< delete id = " deleteBillByProviderId" parameterType = " Integer" >
delete from smbms_bill
< where>
providerId=#{providerId}
</ where>
</ delete>
</ mapper>
3.7.3 Bill测试
import com. yang. dao. Bill . BillMapper ;
import com. yang. pojo. Bill ;
import com. yang. utils. MybatisUtils ;
import org. apache. ibatis. session. SqlSession ;
import org. junit. Test ;
import java. math. BigDecimal ;
import java. sql. Date ;
import java. text. ParseException ;
import java. text. SimpleDateFormat ;
import java. util. List ;
public class TestBillMapper {
@Test
public void getBillCountByProviderId ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
int res = mapper. getBillCountByProviderId ( 2 ) ;
System . out. println ( "该供应商的订单数量为:" + res) ;
sqlSession. close ( ) ;
}
@Test
public void add ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
Bill bill = new Bill ( ) ;
bill. setId ( 19 ) ;
bill. setBillCode ( "BILL2016_019" ) ;
bill. setProductName ( "香飘飘" ) ;
bill. setProductDesc ( "饮料" ) ;
bill. setProductUnit ( "瓶" ) ;
bill. setProductCount ( BigDecimal . valueOf ( 3000.00 ) ) ;
bill. setTotalPrice ( BigDecimal . valueOf ( 6000.00 ) ) ;
bill. setIsPayment ( 2 ) ;
bill. setCreatedBy ( 1 ) ;
bill. setProviderId ( 2 ) ;
int res = mapper. add ( bill) ;
if ( res> 0 ) {
System . out. println ( "插入成功" ) ;
}
sqlSession. close ( ) ;
}
@Test
public void getBillList ( ) throws Exception {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
List < Bill > billList = mapper. getBillList ( "油" , "1" , "1" , 0 , 2 ) ;
for ( Bill bill : billList) {
System . out. println ( bill) ;
}
sqlSession. close ( ) ;
}
@Test
public void getBillCount ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
int billCount = mapper. getBillCount ( "安" , 2 , 2 ) ;
System . out. println ( "供货商数量为:" + billCount) ;
sqlSession. close ( ) ;
}
@Test
public void deleteBillById ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
int res = mapper. deleteBillById ( 19 ) ;
if ( res> 0 ) {
System . out. println ( "删除成功!" ) ;
}
sqlSession. close ( ) ;
}
@Test
public void getBillById ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
Bill bill = mapper. getBillById ( 19 ) ;
System . out. println ( bill) ;
sqlSession. close ( ) ;
}
@Test
public void modify ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
Bill bill = new Bill ( ) ;
bill. setProductName ( "安慕希" ) ;
bill. setId ( 19 ) ;
mapper. modify ( bill) ;
sqlSession. close ( ) ;
}
@Test
public void deleteBillByProviderId ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
BillMapper mapper = sqlSession. getMapper ( BillMapper . class ) ;
int res = mapper. deleteBillByProviderId ( 20 ) ;
if ( res> 0 ) {
System . out. println ( "删除成功!" ) ;
}
sqlSession. close ( ) ;
}
}
3.8 Provider相关练习
3.8.1 Provider接口
import com. yang. pojo. Provider ;
import org. apache. ibatis. annotations. Param ;
import java. util. List ;
public interface ProviderMapper {
int add ( Provider provider) ;
List < Provider > getProviderList ( @Param ( "proName" ) String proName,
@Param ( "proCode" ) String proCode,
@Param ( "from" ) Integer currentPageNo,
@Param ( "pageSize" ) Integer pageSize) ;
List < Provider > getProList ( ) ;
int getProviderCount ( @Param ( "proName" ) String proName,
@Param ( "proCode" ) String proCode) ;
int deleteProviderById ( @Param ( "id" ) Integer delId) ;
Provider getProviderById ( @Param ( "id" ) Integer id) ;
int modify ( Provider provider) ;
}
3.8.2 ProviderMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
< mapper namespace = " com.yang.dao.Provider.ProviderMapper" >
< insert id = " add" parameterType = " provider" >
insert into smbms_provider(proCode,proName,proDesc,proContact,proPhone,proAddress,proFax,createdBy,creationDate)
values(#{proCode},#{proName},#{proDesc},#{proContact},#{proPhone},#{proAddress},#{proFax},#{createdBy},#{creationDate})
</ insert>
< select id = " getProviderList" parameterType = " String" resultType = " provider" >
select * from smbms.smbms_provider
< where>
< if test = " proName !=null" >
and proName like concat('%',#{proName},'%')
</ if>
< if test = " proCode !=null" >
and proCode like concat ('%',#{proCode},'%')
</ if>
</ where>
</ select>
< select id = " getProList" resultType = " Provider" >
select * from smbms_provider;
</ select>
< select id = " getProviderCount" resultType = " Integer" >
select count(1) from smbms_provider
< where>
< if test = " proName != null" > proName like CONCAT('%',#{proName},'%')</ if>
< if test = " proCode != null" > and proCode like CONCAT('%',#{proCode},'%')</ if>
</ where>
</ select>
< delete id = " deleteProviderById" >
delete from smbms_provider where id=#{id};
</ delete>
< select id = " getProviderById" resultType = " Provider" >
select * from smbms_provider where id = #{id}
</ select>
< update id = " modify" parameterType = " provider" >
update smbms_provider
< trim prefix = " set" suffixOverrides = " ," suffix = " where id=#{id}" >
< if test = " proName!=null" > proName=#{proName},</ if>
< if test = " proCode!=null" > proCode=#{proCode},</ if>
< if test = " proDesc!=null" > proDesc=#{proDesc},</ if>
< if test = " proContact!=null" > proContact=#{proContact},</ if>
< if test = " proPhone!=null" > proPhone=#{proPhone},</ if>
< if test = " proAddress!=null" > proAddress=#{proAddress},</ if>
< if test = " proFax!=null" > proFax=#{proFax},</ if>
< if test = " createdBy!=null" > createdBy=#{createdBy},</ if>
< if test = " creationDate!=null" > creationDate=#{creationDate},</ if>
< if test = " modifyDate!=null" > modifyDate=#{modifyDate},</ if>
< if test = " modifyBy!=null" > modifyBy=#{modifyBy}</ if>
</ trim>
</ update>
</ mapper>
3.8.3 Provider测试
public class TestProviderMapper {
@Test
public void add ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = sqlSession. getMapper ( ProviderMapper . class ) ;
Provider provider = new Provider ( 21 , "ZJ_GYS002" ,
"乐摆日用品厂2" , "长期合作伙伴,主营产品:2" ,
"王世杰" , "13212331567" ,
"浙江省金华市义乌市义东路" ,
"0579-34452321" , 1 , null ,
null , null ) ;
mapper. add ( provider) ;
sqlSession. close ( ) ;
}
@Test
public void getProviderList ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = sqlSession. getMapper ( ProviderMapper . class ) ;
List < Provider > providerList = mapper. getProviderList ( "日" , "00" , null , null ) ;
for ( Provider provider : providerList) {
System . out. println ( provider) ;
}
sqlSession. close ( ) ;
}
@Test
public void getProList ( ) {
SqlSession sqlSession = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = sqlSession. getMapper ( ProviderMapper . class ) ;
List < Provider > proLists = mapper. getProList ( ) ;
for ( Provider provider: proLists) {
System . out. println ( provider) ;
}
sqlSession. close ( ) ;
}
@Test
public void getProviderCount ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = session. getMapper ( ProviderMapper . class ) ;
int providerCount = mapper. getProviderCount ( "深圳" , "GZ" ) ;
System . out. println ( providerCount) ;
session. close ( ) ;
}
@Test
public void deleteProviderById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = session. getMapper ( ProviderMapper . class ) ;
mapper. deleteProviderById ( 17 ) ;
session. close ( ) ;
}
@Test
public void getProviderById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = session. getMapper ( ProviderMapper . class ) ;
mapper. getProviderById ( 16 ) ;
session. close ( ) ;
}
@Test
public void modify ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
ProviderMapper mapper = session. getMapper ( ProviderMapper . class ) ;
mapper. modify ( new Provider ( 16 , "ZJ_GYS002" , "安徽皮革厂" , null , null ,
null , null , null , null , null , null , null ) ) ;
session. close ( ) ;
}
}
3.9 RoleMapper相关练习
3.9.1 Role接口
import com. yang. pojo. Role ;
import org. apache. ibatis. annotations. Param ;
import java. util. List ;
public interface RoleMapper {
List < Role > getRoleList ( ) ;
int add ( Role role) ;
int deleteRoleById ( @Param ( "id" ) Integer delId) ;
int modify ( Role role) ;
Role getRoleById ( @Param ( "id" ) Integer id) ;
int roleCodeIsExist ( @Param ( "roleCode" ) String roleCode) ;
}
3.9.2 RoleMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
< mapper namespace = " com.yang.dao.Role.RoleMapper" >
< select id = " getRoleList" resultType = " Role" >
select * from smbms_role;
</ select>
< insert id = " add" parameterType = " Role" >
insert into smbms_role values (#{id},#{roleCode},#{roleName},#{createdBy},
#{creationDate},#{modifyBy},#{modifyDate});
</ insert>
< delete id = " deleteRoleById" parameterType = " Integer" >
delete from smbms_role where id = #{id};
</ delete>
< update id = " modify" parameterType = " Role" >
update smbms_role
< set>
< if test = " roleCode != null" >
roleCode=#{roleCode},
</ if>
< if test = " roleName != null" >
roleName=#{roleName},
</ if>
< if test = " createdBy != null" >
createdBy=#{createdBy},
</ if>
< if test = " creationDate != null" >
creationDate=#{creationDate},
</ if>
< if test = " modifyBy != null" >
modifyBy=#{modifyBy},
</ if>
< if test = " modifyDate != null" >
modifyDate=#{modifyDate}
</ if>
</ set>
where id = #{id}
</ update>
< select id = " getRoleById" resultType = " Role" >
select * from smbms_role where id = #{id};
</ select>
< select id = " roleCodeIsExist" parameterType = " String" resultType = " Integer" >
select count(*) from smbms_role where roleCode=#{roleCode}
</ select>
</ mapper>
3.9.3 Role测试
import com. yang. dao. Role . RoleMapper ;
import com. yang. pojo. Role ;
import com. yang. utils. MybatisUtils ;
import org. apache. ibatis. session. SqlSession ;
import org. junit. Test ;
import java. text. ParseException ;
import java. text. SimpleDateFormat ;
import java. sql. Date ;
import java. util. List ;
public class TestRoleMapper {
@Test
public void getRoleList ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
List < Role > roleList = mapper. getRoleList ( ) ;
for ( Role role : roleList) {
System . out. println ( role) ;
}
session. close ( ) ;
}
@Test
public void add ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
mapper. add ( new Role ( 4 , "SMBMS_Boss" , "老板" , 1 , null , null , null ) ) ;
session. close ( ) ;
}
@Test
public void deleteRoleById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
mapper. deleteRoleById ( 4 ) ;
session. close ( ) ;
}
@Test
public void modify ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
mapper. modify ( new Role ( 1 , null , null , null , null , 2 , null ) ) ;
session. close ( ) ;
}
@Test
public void getRoleById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
Role role = mapper. getRoleById ( 2 ) ;
System . out. println ( role) ;
session. close ( ) ;
}
@Test
public void roleCodeIsExist ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
RoleMapper mapper = session. getMapper ( RoleMapper . class ) ;
int i = mapper. roleCodeIsExist ( "SMBMS_ADMIN" ) ;
System . out. println ( i) ;
session. close ( ) ;
}
}
3.10 User相关练习
3.10.1 User接口
package com. yang. dao. User ;
import com. yang. pojo. User ;
import org. apache. ibatis. annotations. Param ;
import java. util. HashMap ;
import java. util. List ;
public interface UserMapper {
public User getLoginUser ( @Param ( "userCode" ) String userCode) ;
public int add ( HashMap < String , Object > map) ;
public List < User > getUserList ( @Param ( "userName" ) String userName,
@Param ( "userRole" ) Integer userRole,
@Param ( "from" ) Integer from,
@Param ( "pageSize" ) Integer pageSize) ;
public int getUserCount ( @Param ( "userName" ) String userName,
@Param ( "userRole" ) Integer userRole) ;
public int deleteUserById ( @Param ( "id" ) Integer id) ;
public User getUserById ( @Param ( "id" ) Integer id) ;
public int modify ( User user) ;
public int updatePwd ( @Param ( "id" ) Integer id, @Param ( "pwd" ) String pwd) ;
}
3.10.2 UserMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
< mapper namespace = " com.yang.dao.User.UserMapper" >
< select id = " getLoginUser" parameterType = " String" resultType = " User" >
select * from smbms_user
< trim prefix = " where" >
< if test = " userCode != null" >
userCode = #{userCode}
</ if>
</ trim>
</ select>
< insert id = " add" parameterType = " map" >
insert into smbms_user values (#{id},#{userCode},#{userName},#{userPassword},#{gender},#{birthday},
#{phone},#{address},#{userRole},#{createdBy},#{creationDate},#{modifyBy}
,#{modifyDate});
</ insert>
< select id = " getUserList" resultType = " user" >
select u.*,r.roleName from smbms_user u,smbms_role r where u.userRole=r.id
< if test = " userRole!= null" > and u.userRole = #{userRole} </ if>
< if test = " userName!= null and userName!=''" > and u.userName like CONCAT('%',#{userName},'%')</ if>
order by creationDate DESC limit #{from},#{pageSize}
</ select>
< select id = " getUserCount" resultType = " Integer" >
select count(1) as count from smbms_user u,smbms_role r where u.userRole=r.id
< if test = " userRole!=null" > and userRole=#{userRole}</ if>
< if test = " userName!=null and userName!=''" > and userName like CONCAT('%',#{userName},'%')</ if>
</ select>
< delete id = " deleteUserById" parameterType = " Integer" >
delete from smbms_user where id = #{id};
</ delete>
< select id = " getUserById" resultType = " User" >
select * from smbms_user where id = #{id};
</ select>
< update id = " modify" parameterType = " Role" >
update smbms_user
< trim prefix = " set" suffixOverrides = " ," suffix = " where id = #{id}" >
< if test = " userCode != null" >
userCode=#{userCode},
</ if>
< if test = " userName != null" >
userName=#{userName},
</ if>
< if test = " userPassword != null" >
userPassword=#{userPassword},
</ if>
< if test = " gender != null" >
gender=#{gender},
</ if>
< if test = " birthday != null" >
birthday=#{birthday},
</ if>
< if test = " phone != null" >
phone=#{phone},
</ if>
< if test = " address != null" >
address=#{address},
</ if>
< if test = " userRole != null" >
userRole=#{userRole},
</ if>
< if test = " createdBy != null" >
createdBy=#{createdBy},
</ if>
< if test = " creationDate != null" >
creationDate=#{creationDate},
</ if>
< if test = " modifyBy != null" >
modifyBy=#{modifyBy},
</ if>
< if test = " modifyDate != null" >
modifyDate=#{modifyDate}
</ if>
</ trim>
</ update>
< update id = " updatePwd" >
update smbms_user set userPassword = #{pwd} where id = #{id}
</ update>
</ mapper>
3.10.3 User测试
import com. yang. dao. User . UserMapper ;
import com. yang. pojo. User ;
import com. yang. utils. MybatisUtils ;
import org. apache. ibatis. session. SqlSession ;
import org. junit. Test ;
import java. text. ParseException ;
import java. text. SimpleDateFormat ;
import java. util. Date ;
import java. util. HashMap ;
import java. util. List ;
public class TestUserMapper {
public static Date getCurrentDate ( ) throws ParseException {
Date date= new Date ( ) ;
SimpleDateFormat sd= new SimpleDateFormat ( "yyyy:MM:dd HH:mm:ss" ) ;
String format = sd. format ( date) ;
return sd. parse ( format) ;
}
@Test
public void getLoginUser ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
User user = mapper. getLoginUser ( "liming" ) ;
System . out. println ( user) ;
session. close ( ) ;
}
@Test
public void add ( ) throws ParseException {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
HashMap < String , Object > map = new HashMap < String , Object > ( ) ;
map. put ( "id" , 16 ) ;
map. put ( "userCode" , "duxuan" ) ;
map. put ( "userName" , "杜轩" ) ;
map. put ( "userPassword" , "root" ) ;
map. put ( "gender" , 1 ) ;
map. put ( "birthday" , null ) ;
map. put ( "phone" , "110" ) ;
map. put ( "address" , "上海" ) ;
map. put ( "userRole" , 3 ) ;
map. put ( "createdBy" , 1 ) ;
map. put ( "creationDate" , getCurrentDate ( ) ) ;
mapper. add ( map) ;
session. close ( ) ;
}
@Test
public void getUserList ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
List < User > users = mapper. getUserList ( "孙" , 3 , 0 , 30 ) ;
for ( User user : users) {
System . out. println ( user. toString ( ) ) ;
}
session. close ( ) ;
}
@Test
public void getUserCount ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
int times = mapper. getUserCount ( "邓超" , 3 ) ;
System . out. println ( times) ;
session. close ( ) ;
}
@Test
public void deleteUserById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
mapper. deleteUserById ( 16 ) ;
session. close ( ) ;
}
@Test
public void getUserById ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
User user = mapper. getUserById ( 15 ) ;
System . out. println ( user) ;
session. close ( ) ;
}
@Test
public void modify ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
User user = new User ( ) ;
user. setId ( 16 ) ;
user. setUserName ( "杜轩1" ) ;
mapper. modify ( user) ;
session. close ( ) ;
}
@Test
public void updatePwd ( ) {
SqlSession session = MybatisUtils . getSession ( ) ;
UserMapper mapper = session. getMapper ( UserMapper . class ) ;
mapper. updatePwd ( 16 , "superRoot" ) ;
session. close ( ) ;
}
}