Как jdb c (mysql) может выполнить многострочную sql строку в одном запросе? - PullRequest
0 голосов
/ 18 марта 2020

Строка sql:

set @original_price=(select group_price from group_data where group_id=4 limit 1);
set @favorable_price=(select vip_favorable_price from group_data where group_id=4 and vip_favorable_price_start_date<now() and vip_favorable_price_expire_date >now() limit 1);
set @card=(SELECT coupon_list.coupon_value from card_record,coupon_list where card_record.card_user='asd' and card_record.coupon_status=0 and card_record.coupon_id=coupon_list.id and (coupon_list.coupon_type=0 or coupon_list.coupon_type=4) limit 1);
select convert(if(false and !ISNULL(@card),@original_price-@card,IFNULL(@favorable_price,@original_price)),decimal(5,2));

и код:

final Connection conn = getConn();

  final PreparedStatement pstmt = conn.prepareStatement(sql);
  final ResultSet rs = pstmt.executeQuery(sql)
  ArrayList<Object> r= new ArrayList<Object>()
  r.add(rs);
  r.add(pstmt);
   r.add(conn);
    final ResultSet rs = (ResultSet) r.get(0); 
     try {
            if (rs.next()) {
                return rs.getBigDecimal(1);
            } else {
                return null;
            }

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            DBUtil.closeConn((ResultSet) rs, (PreparedStatement) resultList.get(1), (Connection) resultList.get(2));
        }

, но есть исключение:

java.sql.SQLException: ResultSet is from UPDATE. No Data.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)

Как можно JDB C выполнять многострочные операторы вышеуказанного формата без использования функций вызова или хранимых процедур?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...