MyBatis自动生成Java/C#的Bean(Entity)的等价MYSQL实现函数
这是单元测试代码:TESTTITLECASE.sql
SELECT TITLECASE('ABC_DEF_hgk') as BEANNAME FROM DUAL; SELECT TITLECASE('www_mysql_com') as BEANNAME FROM DUAL; SELECT FIRSTLETTERUPPERCASE('ABC') FROM DUAL; SELECT FIRSTLETTERUPPERCASE('aBC') FROM DUAL; SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('mysql', '.', 2), '.', -1); SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 1), '.', -1); SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 2), '.', -1); SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 3), '.', -1);
这是仿照MyBatis的功能实现:TITLECASE(这个是从Sublime里的Edit的Case下借鉴过来的)
CREATE DEFINER=`root`@`%` FUNCTION `TITLECASE`(x VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 READS SQL DATA BEGIN DECLARE i INT; DECLARE n INT; DECLARE y VARCHAR(255); DECLARE word VARCHAR(255); DECLARE wordWithCase VARCHAR(255); SET i = 1; SET n = LENGTH(x) - LENGTH(REPLACE(x, '_', '')) + 1; SET y = ''; WHILE i < n + 1 DO SET word = SUBSTRING_INDEX(SUBSTRING_INDEX(x, '_', i), '_' , -1); SET wordWithCase = CONCAT(IF(i=1,LOWER(SUBSTRING(word, 1, 1)),UPPER(SUBSTRING(word, 1, 1))), LOWER(SUBSTRING(word FROM 2))); SET y = CONCAT(y,wordWithCase); SET i = i + 1; END WHILE; RETURN y; END
这是一个副产品:单词首字符大写:FIRSTLETTERUPPERCASE.sql
CREATE DEFINER=`root`@`%` FUNCTION `FIRSTLETTERUPPERCASE`(x VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 READS SQL DATA BEGIN return CONCAT(UPPER(SUBSTRING(x, 1, 1)), LOWER(SUBSTRING(x FROM 2))); END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具