Fork me on CSDN

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();
    }
}
posted @   潆勖  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示