pom+ssm+mysql

目录

1.类型转化

2.时间问题

3.数据库设计

3.1查本月的日子遍历

3.2每天借阅书籍的数量

 3.3每个读者借阅书籍的数量


1.类型转化

转化

Long转int

 int i = Long.valueOf(stockCount).intValue();
Integer转String
   Integer i1 = i - productNum1;
                        String s = Integer.toString(i1);

Integer转long

long l = i1.longValue();
double转int
         int intValue = (int) Math.round(doubleValue); 

String转double

Double.parseDouble(d)

         int intValue = (int) Math.round(doubleValue); 

2.时间问题

  获取当天日期

Calendar instance = Calendar.getInstance();
DateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = DateFormat.format(instance.getTime());
Date date = DateFormat.parse(format);

2.2jsp页面格式化时间 fmt:formatDate格式化日期

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

       <c:forEach items="${perdaysum}" var="perdaysum">
                    '<fmt:formatDate value="${perdaysum.saleOrderDate}" pattern="yyyy-MM-dd"/>',
                    </c:forEach>

3.数据库设计

3.1查本月的日子遍历

SELECT DATE FROM (

SELECT DATE_FORMAT(DATE_SUB(LAST_DAY(CURDATE()), INTERVAL xc-1 DAY), '%Y-%m-%d') AS DATE

FROM ( 

SELECT @xi:=@xi+1 AS xc FROM 

(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1, 

(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc2,  

(SELECT @xi:=0) xc0 

) xcxc) x0 WHERE x0.date >= (SELECT DATE_ADD(CURDATE(),INTERVAL-DAY(CURDATE())+1 DAY)); 

3.2每天借阅书籍的数量

 SELECT bi.name,DATE_FORMAT(ll.lendDate, '%Y-%m-%d') AS lendDate,COUNT(*) jcount  FROM lend_list ll
      LEFT JOIN book_info bi ON ll.bookId=bi.id
      WHERE DATE_FORMAT(ll.lendDate, '%Y-%m' ) = DATE_FORMAT( CURDATE( ) , '%Y-%m' )
      GROUP BY DATE_FORMAT(ll.lendDate, '%Y-%m-%d')      
      ORDER BY ll.lendDate 
        

 3.3每个读者借阅书籍的数量

      /*
        * 每个读者借阅书籍的数量
        * */   
 SELECT COUNT(ri.id) AS readerNumber , ri.realName FROM    reader_info ri 
 LEFT JOIN lend_list ll ON ri.id=ll.readerId
 GROUP BY ri.id
 

3.4获取本月的销售额

 -- 获取本月的销售额    
    
   SELECT id,sale_order_pay,SUM(sale_order_total) AS sale_order_total ,DATE_FORMAT(sale_order_date, '%Y-%m-%d') AS sale_order_date FROM c_sale_order
    WHERE DATE_FORMAT(sale_order_date, '%Y-%m' ) = DATE_FORMAT( CURDATE( ) , '%Y-%m' )
          GROUP BY DATE_FORMAT(sale_order_date, '%Y-%m-%d')
    ORDER BY sale_order_date

3.5获取本年的月销售额

    
   SELECT id,sale_order_pay,SUM(sale_order_total) AS sale_order_total ,DATE_FORMAT(sale_order_date, '%Y-%m-%d') AS sale_order_date FROM c_sale_order
    WHERE DATE_FORMAT(sale_order_date, '%Y' ) = DATE_FORMAT( CURDATE( ) , '%Y' )
          GROUP BY DATE_FORMAT(sale_order_date, '%Y-%m')
    ORDER BY sale_order_date
    

 

通过分组 求某个字段的总和

 SELECT s.id, s.stock_area, s.goods_id,s.flag,s.rukutime,SUM(s.stock_count) AS stock_count FROM `c_stock` s
        LEFT JOIN  `c_shopgoods` gs ON s.goods_id=gs.id
        WHERE  s.stock_count <= 500 AND s.goods_id IS NOT NULL
        GROUP BY s.goods_id 

获取累计后在判断

        

SELECT * FROM (
                SELECT s.id, s.stock_area, s.goods_id,s.flag,s.rukutime,SUM(s.stock_count) AS stock_count FROM `c_stock` s
        LEFT JOIN  `c_shopgoods` gs ON s.goods_id=gs.id
        WHERE  s.stock_count <= 500 AND s.goods_id IS NOT NULL
        GROUP BY s.goods_id ) a  WHERE  a.stock_count <= 500

3.7 两个字段进行分组

SELECT *,DATE_FORMAT(dp_date, '%Y-%c-%e') AS dp_date,COUNT(*) AS psum FROM dpiao dp
LEFT JOIN `piao`  ts ON ts.Id=dp.pid
LEFT JOIN `traininfo` ti ON ti.Id=ts.tid
WHERE DATE_FORMAT(dp.dp_date, '%Y-%m' ) = DATE_FORMAT( CURDATE( ) , '%Y-%m' )
 GROUP BY DATE_FORMAT(dp.dp_date, '%Y-%m-%d'),ti.traintype

4.mysql错误总结

1.The server time zone value '?й???????' is unrecognized or

方案1、在项目代码-数据库连接URL后,加上 ?serverTimezone=UTC(注意大小写必须一致)

方案2、在mysql中设置时区,默认为SYSTEM

mysql> set global time_zone='+8:00';

2.分组查询调用count函数出错

错误::1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregat

如下两个命令,去掉sql_mode 的 ONLY_FULL_GROUP_BY

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

4.mysql授权问题

GRANT ALL PRIVILEGES ON *.* TO "user"@"192.168." IDENTIFIED BY '2020' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY '202' WITH GRANT OPTION; 


GRANT ALL PRIVILEGES ON *.* TO "foodemarket"@"%" IDENTIFIED BY '123456' WITH GRANT OPTION; 
REVOKE ALL PRIVILEGES ON *.* FROM 'foodemarket'@'%'

GRANT ALL PRIVILEGES ON db_rlzy.* TO "db_rlzy"@"%" IDENTIFIED  BY  '123456' WITH GRANT OPTION; 
REVOKE ALL PRIVILEGES ON *.* FROM 'foodemarket'@'%'
FLUSH PRIVILEGES;

CREATE USER 'xiaoxiao'@'%' IDENTIFIED BY  '202'
GRANT ALL PRIVILEGES ON *.* TO "xiaoxiao"@"%" IDENTIFIED  BY  '202.' WITH GRANT OPTION; 

REVOKE ALL PRIVILEGES ON *.* FROM 'xiaoxiao'@'%'
FLUSH PRIVILEGES;


SHOW MASTER STATUS;
FLUSH LOGS

mysqlbinlog --start-POSITION 107 C:\BtSoft\mysql\MySQL5.5\DATA mysql-bin.000005 -d t -v -r C:\BtSoft\mysql\MySQL5.5\DATA mysql-bin.000005.sql
`market`
`srykzsblmis_db`
//取消用户所有权限
REVOKE ALL ON *.* FROM "user"@"%";
REVOKE ALL PRIVILEGES ON *.* FROM 'xiaoxiao'@'%'

--授权  把某个数据库所有权限授予
GRANT ALL PRIVILEGES ON db_9_jd.* TO 'nsg'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON xu.* TO "xu"@"%" IDENTIFIED BY '123456' WITH GRANT OPTION; 


GRANT ALL PRIVILEGES ON `xutao`.* TO 'xutao'@'%' IDENTIFIED BY '123456';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON xu.* TO "xu"@"%" IDENTIFIED BY '123456' WITH GRANT OPTION; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值