MySQL,java添加字符串数据时,比如“001”这个字符串,添加后前面的0没了,只剩下"1"

MySQL,java添加字符串数据时,比如“001”这个字符串,添加后前面的0没了,只剩下"1",第1张

单独写个insert 语句('001') 直接运行,看能否保存进去 ,如果可以的话 ,就是java代码有问题,如果不行,看一下字段是否配置的有问题,varchar 型理论上是可行的

view sourceprint?

01.

DELIMITER

02.

03.

DROP FUNCTION IF EXISTS urlencode

04.

05.

DELIMITER |

06.

07.

CREATE FUNCTION urlencode (s VARCHAR(4096)) RETURNS VARCHAR(4096)08.

DETERMINISTIC

09.

CONTAINS SQL

10.

BEGIN

11.

DECLARE c VARCHAR(4096) DEFAULT ''

12.

DECLARE pointer INT DEFAULT 1

13.

DECLARE s2 VARCHAR(4096) DEFAULT ''

14.

15.

IF ISNULL(s) THEN

16.

RETURN NULL

17.

ELSE

18.

SET s2 = ''

19.

WHILE pointer <= length(s) DO

20.

SET c = MID(s,pointer,1)

21.

IF c = ' ' THEN

22.

SET c = '+'

23.

ELSEIF NOT (ASCII(c) BETWEEN 48 AND 57 OR24.

ASCII(c) BETWEEN 65 AND 90 OR

25.

ASCII(c) BETWEEN 97 AND 122) THEN

26.

SET c = concat("%",LPAD(CONV(ASCII(c),10,16),2,0))27.

END IF

28.

SET s2 = CONCAT(s2,c)

29.

SET pointer = pointer + 1

30.

END while

31.

END IF

32.

RETURN s2

33.

END

34.

|

35.

DELIMITER

view sourceprint?

01.

DROP FUNCTION IF EXISTS urldecode

02.

03.

DELIMITER |

04.

05.

CREATE FUNCTION urldecode (s VARCHAR(4096)) RETURNS VARCHAR(4096)06.

DETERMINISTIC

07.

CONTAINS SQL

08.

BEGIN

09.

DECLARE c VARCHAR(4096) DEFAULT ''

10.

DECLARE pointer INT DEFAULT 1

11.

DECLARE h CHAR(2)

12.

DECLARE h1 CHAR(1)

13.

DECLARE h2 CHAR(1)

14.

DECLARE s2 VARCHAR(4096) DEFAULT ''

15.

16.

IF ISNULL(s) THEN

17.

RETURN NULL

18.

ELSE

19.

SET s2 = ''

20.

WHILE pointer <= LENGTH(s) DO

21.

SET c = MID(s,pointer,1)

22.

IF c = '+' THEN

23.

SET c = ' '

24.

ELSEIF c = '%' AND pointer + 2 <= LENGTH(s) THEN25.

SET h1 = LOWER(MID(s,pointer+1,1))

26.

SET h2 = LOWER(MID(s,pointer+2,1))

27.

IF (h1 BETWEEN '0' AND '9' OR h1 BETWEEN 'a' AND 'f')28.

AND

29.

(h2 BETWEEN '0' AND '9' OR h2 BETWEEN 'a' AND 'f')30.

THEN

31.

SET h = CONCAT(h1,h2)

32.

SET pointer = pointer + 2

33.

SET c = CHAR(CONV(h,16,10))

34.

END IF

35.

END IF

36.

SET s2 = CONCAT(s2,c)

37.

SET pointer = pointer + 1

38.

END while

39.

END IF

40.

RETURN s2

41.

END

42.

43.

|

44.

45.

DELIMITER

当一个字符串经过多次 urlencode 处理之后,可以使用 multiurldecode来解码,它将多次调用 urldecode来解码,直到没有需要解码的字符www.it165.net

view sourceprint?

01.

DELIMITER

02.

03.

DROP FUNCTION IF EXISTS multiurldecode

04.

05.

DELIMITER |

06.

07.

CREATE FUNCTION multiurldecode (s VARCHAR(4096)) RETURNS VARCHAR(4096)08.

DETERMINISTIC

09.

CONTAINS SQL

10.

BEGIN

11.

DECLARE pr VARCHAR(4096) DEFAULT ''

12.

IF ISNULL(s) THEN

13.

RETURN NULL

14.

END IF

15.

REPEAT

16.

SET pr = s

17.

SELECT urldecode(s) INTO s

18.

UNTIL pr = s END REPEAT

19.

RETURN s

20.

END

21.

22.

|

23.

24.

DELIMITER


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7172457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存