MyBatis练习题
目录
MyBatis练习题
搭建项目
1、创建普通maven项目
2、在pom.xml中导包和配置
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
</dependencies>
3、执行MySQL
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50555
Source Host : 127.0.0.1:3306
Source Database : smbms
Target Server Type : MYSQL
Target Server Version : 50555
File Encoding : 65001
Date: 2019-04-19 17:54:33
*/
CREATE DATABASE smbms
USE smbms
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for smbms_address
-- ----------------------------
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;
-- ----------------------------
-- Records of smbms_address
-- ----------------------------
INSERT INTO `smbms_address` VALUES ('1', '王丽', '北京市东城区东交民巷44号', '100010', '13678789999', '1', '2016-04-13 00:00:00', NULL, NULL, '1');
INSERT INTO `smbms_address` VALUES ('2', '张红丽', '北京市海淀区丹棱街3号', '100000', '18567672312', '1', '2016-04-13 00:00:00', NULL, NULL, '1');
INSERT INTO `smbms_address` VALUES ('3', '任志强', '北京市东城区美术馆后街23号', '100021', '13387906742', '1', '2016-04-13 00:00:00', NULL, NULL, '1');
INSERT INTO `smbms_address` VALUES ('4', '曹颖', '北京市朝阳区朝阳门南大街14号', '100053', '13568902323', '1', '2016-04-13 00:00:00', NULL, NULL, '2');
INSERT INTO `smbms_address` VALUES ('5', '李慧', '北京市西城区三里河路南三巷3号', '100032', '18032356666', '1', '2016-04-13 00:00:00', NULL, NULL, '3');
INSERT INTO `smbms_address` VALUES ('6', '王国强', '北京市顺义区高丽营镇金马工业区18号', '100061', '13787882222', '1', '2016-04-13 00:00:00', NULL, NULL, '3');
-- ----------------------------
-- Table structure for smbms_bill
-- ----------------------------
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` INT(20) DEFAULT NULL COMMENT '供应商ID',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- ----------------------------
-- Records of smbms_bill
-- ----------------------------
INSERT INTO `smbms_bill` VALUES ('1', 'BILL2016_001', '洗发水、护发素', '日用品-洗发、护发', '瓶', '500.00', '25000.00', '2', '1', '2014-12-14 13:02:03', '15', '2019-04-16 21:43:12', '13');
INSERT INTO `smbms_bill` VALUES ('2', 'BILL2016_002', '香皂、肥皂、药皂', '日用品-皂类', '块', '1000.00', '10000.00', '2', '1', '2016-03-23 04:20:40', NULL, NULL, '13');
INSERT INTO `smbms_bill` VALUES ('3', 'BILL2016_003', '大豆油', '食品-食用油', '斤', '300.00', '5890.00', '2', '1', '2014-12-14 13:02:03', NULL, NULL, '6');
INSERT INTO `smbms_bill` VALUES ('4', 'BILL2016_004', '橄榄油', '食品-进口食用油', '斤', '200.00', '9800.00', '2', '1', '2013-10-10 03:12:13', NULL, NULL, '7');
INSERT INTO `smbms_bill` VALUES ('5', 'BILL2016_005', '洗洁精', '日用品-厨房清洁', '瓶', '500.00', '7000.00', '2', '1', '2014-12-14 13:02:03', NULL, NULL, '9');
INSERT INTO `smbms_bill` VALUES ('6', 'BILL2016_006', '美国大杏仁', '食品-坚果', '袋', '300.00', '5000.00', '2', '1', '2016-04-14 06:08:09', NULL, NULL, '4');
INSERT INTO `smbms_bill` VALUES ('7', 'BILL2016_007', '沐浴液、精油', '日用品-沐浴类', '瓶', '500.00', '23000.00', '1', '1', '2016-07-22 10:10:22', NULL, NULL, '14');
INSERT INTO `smbms_bill` VALUES ('8', 'BILL2016_008', '不锈钢盘碗', '日用品-厨房用具', '个', '600.00', '6000.00', '2', '1', '2016-04-14 05:12:13', NULL, NULL, '14');
INSERT INTO `smbms_bill` VALUES ('9', 'BILL2016_009', '塑料杯', '日用品-杯子', '个', '350.00', '1750.00', '2', '1', '2016-02-04 11:40:20', NULL, NULL, '14');
INSERT INTO `smbms_bill` VALUES ('10', 'BILL2016_010', '豆瓣酱', '食品-调料', '瓶', '200.00', '2000.00', '2', '1', '2013-10-29 05:07:03', NULL, NULL, '8');
INSERT INTO `smbms_bill` VALUES ('11', 'BILL2016_011', '海之蓝', '饮料-国酒', '瓶', '50.00', '10000.00', '1', '1', '2016-04-14 16:16:00', NULL, NULL, '1');
INSERT INTO `smbms_bill` VALUES ('12', 'BILL2016_012', '芝华士', '饮料-洋酒', '瓶', '20.00', '6000.00', '1', '1', '2016-09-09 17:00:00', NULL, NULL, '1');
INSERT INTO `smbms_bill` VALUES ('13', 'BILL2016_013', '长城红葡萄酒', '饮料-红酒', '瓶', '60.00', '800.00', '2', '1', '2016-11-14 15:23:00', NULL, NULL, '1');
INSERT INTO `smbms_bill` VALUES ('14', 'BILL2016_014', '泰国香米', '食品-大米', '斤', '400.00', '5000.00', '2', '1', '2016-10-09 15:20:00', NULL, NULL, '3');
INSERT INTO `smbms_bill` VALUES ('15', 'BILL2016_015', '东北大米', '食品-大米', '斤', '600.00', '4000.00', '2', '1', '2016-11-14 14:00:00', NULL, NULL, '3');
INSERT INTO `smbms_bill` VALUES ('16', 'BILL2016_016', '可口可乐', '饮料', '瓶', '2000.00', '6000.00', '2', '1', '2012-03-27 13:03:01', NULL, NULL, '2');
INSERT INTO `smbms_bill` VALUES ('17', 'BILL2016_017', '脉动', '饮料', '瓶', '1500.00', '4500.00', '2', '1', '2016-05-10 12:00:00', NULL, NULL, '2');
-- ----------------------------
-- Table structure for 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=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- ----------------------------
-- Records of smbms_provider
-- ----------------------------
INSERT INTO `smbms_provider` VALUES ('1', 'BJ_GYS001', '北京三木堂商贸有限公司', '长期合作伙伴,主营产品:茅台、五粮液、郎酒、酒鬼酒、泸州老窖、赖茅酒、法国红酒等', '张国强', '13566669999', '北京市丰台区育芳园北路', '010-58858787', '1', '2013-03-21 16:52:07', '2019-04-12 16:44:03', '10');
INSERT INTO `smbms_provider` VALUES ('2', 'HB_GYS001', '石家庄帅益食品贸易有限公司', '长期合作伙伴,主营产品:饮料、水饮料、植物蛋白饮料、休闲食品、果汁饮料、功能饮料等', '王军', '13309094212', '河北省石家庄新华区', '0311-67738876', '1', '2016-04-13 04:20:40', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('3', 'GZ_GYS001', '深圳市泰香米业有限公司', '初次合作伙伴,主营产品:良记金轮米,龙轮香米等', '郑程瀚', '13402013312', '广东省深圳市福田区深南大道6006华丰大厦', '0755-67776212', '1', '2014-03-21 16:56:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('4', 'GZ_GYS002', '深圳市喜来客商贸有限公司', '长期合作伙伴,主营产品:坚果炒货.果脯蜜饯.天然花茶.营养豆豆.特色美食.进口食品.海味零食.肉脯肉', '林妮', '18599897645', '广东省深圳市福龙工业区B2栋3楼西', '0755-67772341', '1', '2013-03-22 16:52:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('5', 'JS_GYS001', '兴化佳美调味品厂', '长期合作伙伴,主营产品:天然香辛料、鸡精、复合调味料', '徐国洋', '13754444221', '江苏省兴化市林湖工业区', '0523-21299098', '1', '2015-11-22 16:52:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('6', 'BJ_GYS002', '北京纳福尔食用油有限公司', '长期合作伙伴,主营产品:山茶油、大豆油、花生油、橄榄油等', '马莺', '13422235678', '北京市朝阳区珠江帝景1号楼', '010-588634233', '1', '2012-03-21 17:52:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('7', 'BJ_GYS003', '北京国粮食用油有限公司', '初次合作伙伴,主营产品:花生油、大豆油、小磨油等', '王驰', '13344441135', '北京大兴青云店开发区', '010-588134111', '1', '2016-04-13 00:00:00', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('8', 'ZJ_GYS001', '慈溪市广和绿色食品厂', '长期合作伙伴,主营产品:豆瓣酱、黄豆酱、甜面酱,辣椒,大蒜等农产品', '薛圣丹', '18099953223', '浙江省宁波市慈溪周巷小安村', '0574-34449090', '1', '2013-11-21 06:02:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('9', 'GX_GYS001', '优百商贸有限公司', '长期合作伙伴,主营产品:日化产品', '李立国', '13323566543', '广西南宁市秀厢大道42-1号', '0771-98861134', '1', '2013-03-21 19:52:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('10', 'JS_GYS002', '南京火头军信息技术有限公司', '长期合作伙伴,主营产品:不锈钢厨具等', '陈女士', '13098992113', '江苏省南京市浦口区浦口大道1号新城总部大厦A座903室', '025-86223345', '1', '2013-03-25 16:52:07', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('11', 'GZ_GYS003', '广州市白云区美星五金制品厂', '长期合作伙伴,主营产品:海绵床垫、坐垫、靠垫、海绵枕头、头枕等', '梁天', '13562276775', '广州市白云区钟落潭镇福龙路20号', '020-85542231', '1', '2016-12-21 06:12:17', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('12', 'BJ_GYS004', '北京隆盛日化科技', '长期合作伙伴,主营产品:日化环保清洗剂,家居洗涤专卖、洗涤用品网、墙体除霉剂、墙面霉菌清除剂等', '孙欣', '13689865678', '北京市大兴区旧宫', '010-35576786', '1', '2014-11-21 12:51:11', NULL, NULL);
INSERT INTO `smbms_provider` VALUES ('13', 'SD_GYS001', '山东豪克华光联合发展有限公司', '长期合作伙伴,主营产品:洗衣皂、洗衣粉、洗衣液、洗洁精、消杀类、香皂等', '吴洪转', '13245468787', '山东济阳济北工业区仁和街21号', '0531-53362445', '1', '2015-01-28 10:52:07', NULL, NULL);
-- ----------------------------
-- Table structure for smbms_role
-- ----------------------------
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;
-- ----------------------------
-- Records of smbms_role
-- ----------------------------
INSERT INTO `smbms_role` VALUES ('1', 'SMBMS_ADMIN', '系统管理员', '1', '2016-04-13 00:00:00', NULL, NULL);
INSERT INTO `smbms_role` VALUES ('2', 'SMBMS_MANAGER', '经理', '1', '2016-04-13 00:00:00', NULL, NULL);
INSERT INTO `smbms_role` VALUES ('3', 'SMBMS_EMPLOYEE', '普通员工', '1', '2016-04-13 00:00:00', NULL, NULL);
-- ----------------------------
-- Table structure for smbms_user
-- ----------------------------
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` INT(10) 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;
-- ----------------------------
-- Records of smbms_user
-- ----------------------------
INSERT INTO `smbms_user` VALUES ('1', 'wen', '系统管理员', '123', '1', '1997-01-01', '15200981234', '湖南省衡阳市蒸湘区南华大学', '1', '1', '2019-04-07 10:15:55', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('5', 'hanlubiao', '韩路彪', '0000000', '2', '1984-06-05', '18567542321', '北京市朝阳区北辰中心12号', '2', '1', '2014-12-31 19:52:09', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('6', 'zhanghua', '张华', '0000000', '1', '1983-06-15', '13544561111', '北京市海淀区学院路61号', '3', '1', '2013-02-11 10:51:17', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('7', 'wangyang', '王洋', '0000000', '2', '1982-12-31', '13444561124', '北京市海淀区西二旗辉煌国际16层', '3', '1', '2014-06-11 19:09:07', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('8', 'zhaoyan', '赵燕', '0000000', '1', '1986-03-07', '18098764545', '北京市海淀区回龙观小区10号楼', '3', '1', '2016-04-21 13:54:07', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('10', 'sunlei', '孙磊', '0000000', '2', '1981-01-04', '13387676765', '北京市朝阳区管庄新月小区12楼', '3', '1', '2015-05-06 10:52:07', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('11', 'sunxing', '孙兴', '0000000', '2', '1978-03-12', '13367890900', '北京市朝阳区建国门南大街10号', '3', '1', '2016-11-09 16:51:17', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('12', 'zhangchen', '张晨', '0000000', '1', '1986-03-28', '18098765434', '朝阳区管庄路口北柏林爱乐三期13号楼', '3', '1', '2016-08-09 05:52:37', '1', '2016-04-14 14:15:36');
INSERT INTO `smbms_user` VALUES ('13', 'dengchao', '邓超', '0000000', '2', '1981-11-04', '13689674534', '北京市海淀区北航家属院10号楼', '3', '1', '2016-07-11 08:02:47', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('14', 'yangguo', '杨过', '0000000', '2', '1980-01-01', '13388886623', '北京市朝阳区北苑家园茉莉园20号楼', '3', '1', '2015-02-01 03:52:07', NULL, NULL);
INSERT INTO `smbms_user` VALUES ('15', 'test', 'test', '111', '1', '2019-04-16', '123456789', '南华大学', '1', '1', '2019-04-16 19:52:37', NULL, NULL);
4、在resources资源目录下编写db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf8&useSLL=false
username=root
password=123456
5、在resources资源目录下编写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">
<!--<property name="username" value="root"/>-->
<!-- <property name="password" value="123456"/>-->
</properties>
<settings>
<!--数据库create_time,实体类createTime转化-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--标准的目志工厂实现-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--可以给实体类起别-->
<typeAliases>
<package name="com.yingxu.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>
<!--每一个Mapper.XML都需要在Mybatis核心配!置文件中注册!-->
<mappers>
<mapper class="com.yingxu.dao.bill.BillMapper"/>
<mapper class="com.yingxu.dao.provider.ProviderMapper"/>
<mapper class="com.yingxu.dao.role.RoleMapper"/>
<mapper class="com.yingxu.dao.user.UserMapper"/>
</mappers>
</configuration>
6、在utils文件夹下创建MyBatisUtils类
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);
}
}
7、在pojo文件夹下编写实体类:
Bill
public class Bill {
private Integer id; //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; //供应商ID
private Integer createdBy; //创建者
private Date creationDate; //创建时间
private Integer modifyBy; //更新者
private Date modifyDate;//更新时间
private String providerName;//供应商名称
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBillCode() {
return billCode;
}
public void setBillCode(String billCode) {
this.billCode = billCode;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductDesc() {
return productDesc;
}
public void setProductDesc(String productDesc) {
this.productDesc = productDesc;
}
public String getProductUnit() {
return productUnit;
}
public void setProductUnit(String productUnit) {
this.productUnit = productUnit;
}
public BigDecimal getProductCount() {
return productCount;
}
public void setProductCount(BigDecimal productCount) {
this.productCount = productCount;
}
public BigDecimal getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(BigDecimal totalPrice) {
this.totalPrice = totalPrice;
}
public Integer getIsPayment() {
return isPayment;
}
public void setIsPayment(Integer isPayment) {
this.isPayment = isPayment;
}
public Integer getProviderId() {
return providerId;
}
public void setProviderId(Integer providerId) {
this.providerId = providerId;
}
public Integer getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Integer createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
public String getProviderName() {
return providerName;
}
public void setProviderName(String providerName) {
this.providerName = providerName;
}
}
Provider
public class Provider {
private Integer id; //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 Integer modifyBy; //更新者
private Date modifyDate;//更新时间
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProCode() {
return proCode;
}
public void setProCode(String proCode) {
this.proCode = proCode;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public String getProDesc() {
return proDesc;
}
public void setProDesc(String proDesc) {
this.proDesc = proDesc;
}
public String getProContact() {
return proContact;
}
public void setProContact(String proContact) {
this.proContact = proContact;
}
public String getProPhone() {
return proPhone;
}
public void setProPhone(String proPhone) {
this.proPhone = proPhone;
}
public String getProAddress() {
return proAddress;
}
public void setProAddress(String proAddress) {
this.proAddress = proAddress;
}
public String getProFax() {
return proFax;
}
public void setProFax(String proFax) {
this.proFax = proFax;
}
public Integer getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Integer createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
}
Role
public class Role {
private Integer id; //id
private String roleCode; //角色编码
private String roleName; //角色名称
private Integer createdBy; //创建者
private Date creationDate; //创建时间
private Integer modifyBy; //更新者
private Date modifyDate;//更新时间
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getRoleCode() {
return roleCode;
}
public void setRoleCode(String roleCode) {
this.roleCode = roleCode;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Integer getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Integer createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
}
User
public class User {
private Integer id; //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; //用户角色名称
public String getUserRoleName() {
return userRoleName;
}
public void setUserRoleName(String userRoleName) {
this.userRoleName = userRoleName;
}
public Integer getAge() {
Date date = new Date();
Integer age = date.getYear()-birthday.getYear();
return age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getUserRole() {
return userRole;
}
public void setUserRole(Integer userRole) {
this.userRole = userRole;
}
public Integer getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Integer createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
}
8、编写dao层
BillMapper
public interface BillMapper {
//根据供应商Id查询订单数量
public int getBillCountByProviderId(@Param("providerId") Integer providerId);
//增加订单
public int add(Bill bill);
//通过查询条件获取供应商列表-getBillList
public List<Bill> getBillList(@Param("productName") String productName,
@Param("providerId") String providerId,
@Param("isPayment") String isPayment,
@Param("from") Integer from,
@Param("pageSize") Integer pageSize);
//通过条件查询,查询供货商数量
public int getBillCount(@Param("productName") String productName,
@Param("providerId") String providerId,
@Param("isPayment") String isPayment);
//通过delId删除Bill
public int deleteBillById(@Param("id") Integer id);
//通过billId获取Bill
public Bill getBillById(@Param("id") Integer id);
//修改订单信息
public int modify(Bill bill);
//根据供应商Id删除订单信息
public int deleteBillByProviderId(@Param("providerId") Integer providerId);
}
ProviderMapper
public interface ProviderMapper {
//增加用户信息 这里类取别名的话一定要映射 resultMap 否则它会报找不到元素
public int add(/*@Param("Provider") */Provider provider);
//通过条件查询providerList
public List<Provider> getProviderList(@Param("proName") String proName,
@Param("proCode") String proCode,
@Param("from") Integer currentPageNo,
@Param("pageSize") Integer pageSize);
//获取供应商列表
public List<Provider> getProList();
//通过条件查询供应商记录数
public int getProviderCount(@Param("proName") String proName,
@Param("proCode") String proCode);
//通过供应商Id删除供应商信息
public int deleteProviderById(@Param("id") Integer delId);
//根据供应商Id获取供应商信息
public Provider getProviderById(@Param("id") Integer id);
//修改供应商
public int modify(Provider provider);
}
RoleMapper
public interface RoleMapper {
//获取角色列表
public List<Role> getRoleList();
//添加角色信息
public int add(Role role);
//通过Id删除Role RoleMapper主要看@Param里的参数名
public int deleteRoleById(@Param("id")Integer delId);
//修改角色信息
public int modify(Role role);
//练通过Id获取role
public Role getRoleById(@Param("id")Integer id);
//根据roleCode,进行角色编码的唯一性验证,使用计数count
public int roleCodeIsExist(@Param("roleCode") String roleCode);
}
UserMapper
public interface UserMapper {
//通过userCode获取User
public User getLoginUser(@Param("userCode") String userCode);
//增加用户信息
public int add(User user);
//通过条件查询userList 注意: 这里是User表与Role联合查询 userRole表示的Role的id,from代表起始
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);
//通过userId删除user
public int deleteUserById(@Param("id") Integer id);
//通过useId获取user
public User getUserById(@Param("id") Integer id);
//修改用户信息
public int modify(User user);
//修改当前用户密码
public int updatePwd(@Param("id") Integer id,@Param("pwd") String pwd);
}
BillMapper.xml
<?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.yingxu.dao.bill.BillMapper">
</mapper>
ProviderMapper.xml
<?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.yingxu.dao.provider.ProviderMapper">
</mapper>
RoleMapper.xml
<?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.yingxu.dao.role.RoleMapper">
</mapper>
UserMapper.xml
<?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.yingxu.dao.user.UserMapper">
</mapper>
开始做题
答案
编写xml
BillMapper.xml
<?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.yingxu.dao.bill.BillMapper">
<!--根据供应商Id查询订单数量-->
<select id="getBillCountByProviderId" resultType="int">
select count(*)
from smbms.smbms_bill
where providerId = #{providerId};
</select>
<!--增加订单-->
<insert id="add" parameterType="bill">
INSERT INTO smbms.smbms_bill(id,billCode,productName,productDesc,productUnit,productCount,totalPrice,
isPayment,createdBy,creationDate,modifyBy,modifyDate,providerId)
VALUES(#{id},#{billCode},#{productName},#{productDesc},#{productUnit},#{productCount},#{totalPrice},
#{isPayment},#{createdBy},#{creationDate},#{modifyBy},#{modifyDate},#{providerId})
</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(*) 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>
</select>
<!--通过delId删除Bill-->
<delete id="deleteBillById" parameterType="int">
delete
from smbms.smbms_bill
where id = #{id};
</delete>
<!--通过billId获取Bill-->
<select id="getBillById" parameterType="int" resultType="bill">
select *
from smbms.smbms_bill
where id = #{id};
</select>
<!--根据供应商Id删除订单信息-->
<delete id="deleteBillByProviderId" parameterType="Integer">
delete
from smbms.smbms_bill
where providerId = #{providerId};
</delete>
</mapper>
ProviderMapper.xml
<?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.yingxu.dao.provider.ProviderMapper">
<!--增加供应商-->
<insert id="add" parameterType="provider">
insert into smbms.smbms_provider(id,proCode,proName,proDesc,proContact,
proPhone,proAddress,proFax,createdBy,creationDate,modifyBy,modifyDate)
values (#{id},#{proCode},#{proName},#{proDesc},#{proContact},#{proPhone},#{proAddress},
#{proFax},#{createdBy},#{modifyDate},#{modifyBy},#{modifyDate});
</insert>
<!--通过供应商名称、编码获取供应商列表-模糊查询-providerList-->
<select id="getProviderList" 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>
order by creationDate DESC
limit #{from},#{pageSize}
</select>
<!--通过proId删除Provider-->
<delete id="deleteProviderById" parameterType="int">
delete from smbms.smbms_provider
where id = #{id};
</delete>
<!--通过proId获取Provider-->
<select id="getProviderById" parameterType="String" resultType="provider">
select * from smbms.smbms_provider
<where>
id = #{id}
</where>
</select>
<!--修改用户信息-->
<update id="modify" parameterType="provider">
update smbms.smbms_provider
<set>
<if test="proCode != null">
proCode = #{proCode},
</if>
<if test="proName != null">
proName = #{proName},
</if>
<if test="proPhone != null">
proPhone = #{proPhone},
</if>
<if test="proAddress != null">
proAddress = #{proAddress},
</if>
</set>
<where>
id = #{id}
</where>
</update>
</mapper>
RoleMapper.xml
<?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.yingxu.dao.role.RoleMapper">
<!--获取角色列表-->
<select id="getRoleList" resultType="role">
select * from smbms.smbms_role;
</select>
<!--增加角色信息-->
<insert id="add" parameterType="role">
insert into smbms.smbms_role (id,roleCode,roleName,createdBy,creationDate,modifyBy,modifyDate)
values (#{id},#{roleCode},#{roleName},#{createdBy},#{creationDate},#{modifyBy},#{modifyDate});
</insert>
<!--通过Id删除Role-->
<delete id="deleteRoleById" parameterType="String">
delete from smbms.smbms_role
<where>
id = #{id};
</where>
</delete>
<!--修改角色信息-->
<update id="modify" parameterType="role">
update smbms.smbms_role
<set>
<if test="roleCode != null">
roleCode = #{roleCode},
</if>
<if test="roleName != null">
roleName = #{roleName},
</if>
</set>
<where>
id = #{id};
</where>
</update>
<!--通过Id获取role-->
<select id="getRoleById" parameterType="Integer" resultType="role">
select * from smbms.smbms_role
<where>
id = #{id};
</where>
</select>
<!--根据roleCode,进行角色编码的唯一性验证(统计count)-->
<select id="roleCodeIsExist" parameterType="String" resultType="int">
select count(*) from smbms.smbms_role
<where>
roleCode = #{roleCode};
</where>
</select>
</mapper>
UserMapper.xml
<?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.yingxu.dao.user.UserMapper">
<!--通过userCode获取User-->
<select id="getLoginUser" parameterType="String" resultType="user">
select * from smbms.smbms_user
<where>
userCode = #{userCode};
</where>
</select>
<!--增加用户信息-->
<insert id="add" parameterType="user">
insert into smbms.smbms_user (id,userCode,userName,userPassword,gender,birthday,phone,address,userRole,createdBy,creationDate,modifyBy,modifyDate)
values (#{id},#{userCode},#{userName},#{userPassword},#{gender},#{birthday},#{phone},#{address},#{userRole},#{createdBy},#{creationDate},#{modifyBy},#{modifyDate})
</insert>
<!--通过条件查询userList,limit分页-->
<select id="getUserList" resultType="user">
select * from smbms.smbms_user
<where>
<if test="userName != null">
and userName = #{userName}
</if>
<if test="userRole != null">
and userRole = #{userRole}
</if>
</where>
limit #{from},#{pageSize};
</select>
<!--通过条件查询-用户记录数 两个条件必须都要满足-->
<select id="getUserCount" resultType="int">
select count(*) from smbms.smbms_user
<where>
<if test="userName != null">
userName = #{userName}
</if>
<if test="userRole != null">
and userRole = #{userRole}
</if>
</where>
</select>
<!--通过userId删除user-->
<delete id="deleteUserById" parameterType="Integer">
delete from smbms.smbms_user
<where>
id = #{id};
</where>
</delete>
<!--通过useId获取user-->
<select id="getUserById" parameterType="Integer" resultType="user">
select * from smbms.smbms_user
<where>
id = #{id};
</where>
</select>
<!--修改用户信息-->
<update id="modify" parameterType="user">
update smbms.smbms_user
<set>
<if test="userCode != null">
userCode = #{userCode},
</if>
<if test="userName != null">
userName = #{userName},
</if>
</set>
<where>
id = #{id};
</where>
</update>
<!--修改当前用户密码-->
<update id="updatePwd" parameterType="String">
update smbms.smbms_user
<set>
<if test="userPassword != null">
userPassword = #{userPassword},
</if>
</set>
<where>
id = #{id};
</where>
</update>
</mapper>
测试代码
BillTest
public class BillTest {
//根据供应商Id查询订单数量
@Test
public void getBillCountByProviderId(){
SqlSession sqlSession = MyBatisUtils.getSession();
BillMapper mapper = sqlSession.getMapper(BillMapper.class);
int providerId = 1;
int count = mapper.getBillCountByProviderId(providerId);
System.out.println("根据供应商Id="+providerId+"的查询订单数量"+"为"+count);
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");
int flag = mapper.add(bill);
if (flag > 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("可口可乐", "2", "2",
0, 2);
for (Bill bill : billList) {
System.out.println(bill);
}
sqlSession.close();
}
//通过条件查询,查询供货商数量,模糊查询
@Test
public void getBillCount() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
BillMapper mapper = sqlSession.getMapper(BillMapper.class);
int billCount = mapper.getBillCount("可口可乐", "2", "2");
System.out.println("产品名称为可口可乐的数量为"+billCount+"个");
sqlSession.close();
}
//通过delId删除Bill
@Test
public void deleteBillById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
BillMapper mapper = sqlSession.getMapper(BillMapper.class);
int flag = mapper.deleteBillById(19);
if (flag > 0){
System.out.println("删除成功!");
}
sqlSession.close();
}
//通过billId获取Bill
@Test
public void getBillById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
BillMapper mapper = sqlSession.getMapper(BillMapper.class);
Bill bill = mapper.getBillById(14);
System.out.println(bill);
sqlSession.close();
}
//根据供应商Id删除订单信息
@Test
public void deleteBillByProviderId() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
BillMapper mapper = sqlSession.getMapper(BillMapper.class);
int flag = mapper.deleteBillByProviderId(8);
if (flag > 0){
System.out.println("删除成功!");
}
sqlSession.close();
}
}
ProviderTest
public class ProviderTest {
@Test
public void add() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
ProviderMapper mapper = sqlSession.getMapper(ProviderMapper.class);
Provider provider = new Provider();
provider.setId(16);
provider.setProCode("新添加的");
provider.setProName("小明");
provider.setProDesc("主营app");
int flag = mapper.add(provider);
if (flag > 0){
System.out.println("添加成功!");
}
sqlSession.close();
}
//通过供应商名称、编码获取供应商列表-模糊查询-providerList
@Test
public void getProviderList() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
ProviderMapper mapper = sqlSession.getMapper(ProviderMapper.class);
List<Provider> providers = mapper.getProviderList("深圳市泰香米业有限公司", "GZ_GYS001",0,15);
for (Provider provider : providers) {
System.out.println(provider);
}
sqlSession.close();
}
//通过proId删除Provider
@Test
public void deleteProviderById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
ProviderMapper mapper = sqlSession.getMapper(ProviderMapper.class);
int flag = mapper.deleteProviderById(16);
if (flag > 0){
System.out.println("删除成功!");
}
sqlSession.close();
}
//通过proId获取Provider
@Test
public void getProviderById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
ProviderMapper mapper = sqlSession.getMapper(ProviderMapper.class);
Provider provider = mapper.getProviderById(12);
System.out.println(provider);
sqlSession.close();
}
//修改用户信息
@Test
public void modify() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
ProviderMapper mapper = sqlSession.getMapper(ProviderMapper.class);
Provider provider = new Provider();
provider.setProCode("修改proCode");
provider.setProName("修改proName");
provider.setId(11);
int flag = mapper.modify(provider);
if (flag > 0){
System.out.println("修改成功!");
}
sqlSession.close();
}
}
RoleTest
public class RoleTest {
//获取角色列表
@Test
public void getRoleList() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
List<Role> roles = mapper.getRoleList();
for (Role role : roles) {
System.out.println(role);
}
sqlSession.close();
}
//增加角色信息
@Test
public void add() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
Role role = new Role();
role.setId(4);
role.setRoleName("歌者");
role.setCreatedBy(1);
int flag = mapper.add(role);
if (flag > 0) {
System.out.println("插入成功!");
}
sqlSession.close();
}
//通过Id删除Role
@Test
public void deleteRoleById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
int flag = mapper.deleteRoleById(4);
if (flag > 0) {
System.out.println("删除成功!");
}
sqlSession.close();
}
//修改角色信息
@Test
public void modify() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
Role role = new Role();
role.setId(3);
role.setRoleName("普通员工");
int flag = mapper.modify(role);
if (flag > 0) {
System.out.println("修改成功!");
}
sqlSession.close();
}
//通过Id获取role
@Test
public void getRoleById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
Role role = mapper.getRoleById(3);
System.out.println(role);
sqlSession.close();
}
//根据roleCode,进行角色编码的唯一性验证(统计count)
@Test
public void roleCodeIsExist() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
int exist = mapper.roleCodeIsExist("SMBMS_EMPLOYEE");
System.out.println("roleCode = SMBMS_EMPLOYEE的role有" + exist + "个");
sqlSession.close();
}
}
UserTest
public class UserTest {
//通过userCode获取User
@Test
public void getLoginUser() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getLoginUser("yangguo");
System.out.println(user);
sqlSession.close();
}
//增加用户信息
@Test
public void add() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(16);
user.setUserCode("liuxing");
user.setUserName("刘星");
int flag = mapper.add(user);
if (flag > 0){
System.out.println("新增成功!");
}
sqlSession.close();
}
//通过条件查询userList,limit分页
@Test
public void getUserList() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> users = mapper.getUserList(null, 2,0,5);
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
//通过条件查询-用户记录数
@Test
public void getUserCount() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int count = mapper.getUserCount("杨过", 3);
System.out.println(count);
sqlSession.close();
}
//通过userId删除user
@Test
public void deleteUserById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int flag = mapper.deleteUserById(16);
if (flag > 0){
System.out.println("删除成功!");
}
sqlSession.close();
}
//通过useId获取user
@Test
public void getUserById() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(14);
System.out.println(user);
sqlSession.close();
}
//修改用户信息
@Test
public void modify() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(13);
user.setUserCode("zhangsanfeng");
user.setUserName("张三丰");
int flag = mapper.modify(user);
if (flag > 0){
System.out.println("更新成功!");
}
sqlSession.close();
}
//修改当前用户密码
@Test
public void updatePwd() throws Exception {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int flag = mapper.updatePwd(15, "123456");
if (flag > 0){
System.out.println("更新密码成功!");
}
sqlSession.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码