美文网首页程序员读书
做小程序配置小工具使用mybatisplus+thymeleaf

做小程序配置小工具使用mybatisplus+thymeleaf

作者: 晚安多巴胺 | 来源:发表于2019-04-16 19:26 被阅读0次

    不知道在mybatisplus下面怎么新建表
    我就想在mysql里面通过trigger,来监听新加入的乘车码,然后给他创建user表
    表名都是mini_user_城市缩写
    是拼接起来的
    第一次

    
    

    第二次

    trigger
    DROP TRIGGER IF EXISTS AddCompany; 
    CREATE TRIGGER AddCompany after insert on mini_company_up FOR EACH ROW
    
    call addCompany(@NEW.FLD_TABLE_MAPPER); 
    存储过程
    create PROCEDURE addCompany(tableName varchar(20)) 
    -- 创建存储过程 命名为tests
    
    BEGIN   -- 存储过程的开始
    
      set @tableNames = CONCAT(tableName); 
      -- @先在用户变量中保存值然后在以后引用它
    
      set @sqlStr = CONCAT('CREATE TABLE ',@tableNames,' (
      `FLD_ID` bigint(20) NOT NULL AUTO_INCREMENT,
      `FLD_OPENID` varchar(32) NOT NULL DEFAULT \'\',
      `FLD_NICKNAME` varchar(50) DEFAULT NULL,
      `FLD_REALNAME` varchar(16) DEFAULT NULL,
      `FLD_CREID` varchar(18) DEFAULT NULL,
      `FLD_MOBILE` varchar(12) DEFAULT NULL,
      `FLD_CREATE_TIME` datetime DEFAULT NULL,
      `FLD_OPERATE_TIME` datetime DEFAULT NULL,
      `FLD_CHANGE_TYPE` varchar(10) DEFAULT NULL,
      `FLD_CONTRACT_CODE` varchar(32) DEFAULT NULL,
      `FLD_CONTRACT_ID` varchar(32) DEFAULT NULL,
      `FLD_CONTRACT_EXPIRED_TIME` datetime DEFAULT NULL,
      `FLD_REQUEST_SERIAL` varchar(16) DEFAULT NULL,
      `FLD_CARD_CODE` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`FLD_ID`,`FLD_OPENID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=38417 DEFAULT CHARSET=utf8;');
      -- 拼接查询总记录的SQL语句 
    
      prepare stmt from @sqlStr; -- 预定义一个语句,并将它赋给 stmt
    
      execute stmt ; -- 执行语句
    
      deallocate prepare stmt;-- 要释放一个预定义语句的资源
    
    END;  -- 存储过程的结束
    

    还是不行,MySQL的trigger不能使用动态sql
    Dynamic SQL is not allowed in stored function or trigger

    后面使用Java代码来调用数据库存储过程

    // 一开始没有加两个小引号,一直不知道问题在哪里
    String tableName = "\'mini_user_" + fldTableMapper+"\'";
    
    //              CallableStatement callableStatement = sqlSession.getConnection().prepareCall("call " + "addCompany" + "(" + tableName + " )");
    //              ResultSet resultSet = callableStatement.executeQuery();''
    
                    //向驱动管理器注册驱动  ——把mysql驱动对象类的对象放置在集合中
                    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    
                    String url="jdbc:mysql://rdswrqbw5ouz7o.mysql.rds.aliyuncs.com:3306/busticket?useUnicode=true&useSSL=false&characterEncoding=utf8";
                    //获取连接  ——先从集合中获取驱动,再调用驱动
                    Connection connection= DriverManager.getConnection(url, "busticket", "Busticket@");
                    CallableStatement callableStatement = connection.prepareCall("call " + "addCompany" + "(" + tableName + " );");
                    System.out.println(callableStatement);
    // 一开始忘记执行这个东西
                    ResultSet resultSet = callableStatement.executeQuery();
                    System.out.println(resultSet);
    

    终于实现了,很开心

    给我灵感的是这篇文章
    https://www.cnblogs.com/lhhitnote/p/5498095.html
    usingProcedureJava调用存储过程访问

    sql语句是否支持字符串拼接一开始连这个也不知道,可以使用concat关键字
    https://www.cnblogs.com/rxhuiu/p/9134009.html
    concat(str1, str2,...)

    中间用到了这个jdbc获取connection三种方式的知识
    https://www.cnblogs.com/liuwt365/p/4095201.html
    我都不知道怎么用mybatisplus获取connection

    这篇文章也给我了帮助
    https://blog.csdn.net/z1729734271/article/details/54731332/

    还有就是发现mybatisplus的update都要用id,刚好我的表没用id,找了很多项目,找到了

    //需要导入这个,不知道为什么没有提示,翻了好久资料
    import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
    MiniCompanyUp company = new MiniCompanyUp();
                company.setFldLogo(ImgPath);
    // update第一个参数是,需要更新的,后面的是条件
    boolean b = service.update(company, new UpdateWrapper<MiniCompanyUp>().eq("FLD_COMPANY_ID", "abc"));
    
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    //还有这种骚操作
    MiniCompanyUp one = service.getOne(new QueryWrapper<MiniCompanyUp>()
                    .lambda().eq(MiniCompanyUp::getFldCompanyId, fldCompanyId));
    

    还有js页面加载好直接执行

    相关文章

      网友评论

        本文标题:做小程序配置小工具使用mybatisplus+thymeleaf

        本文链接:https://www.haomeiwen.com/subject/qlxwiqtx.html