使用sed、awk命令生成.java或.yaml文件所需语句
来源:互联网 发布:动态网页制作python 编辑:程序博客网 时间:2024/05/16 16:12
0.引言
照着数据库里的建表语句一个个去写对数据表的操作的java语句时是很烦的,而且很容易出错,为什么不用新的的方法来实现这些功能呢。于是就想到了用shell语句来完成这些任务,效果见下面部分。本次的实现仅仅是使用一条条语句来实现这种功能,下一步是实现用一个shell脚本来自动化实现这些功能。//TODO1.根据sql建表语句创建*.java文件所需语句;
1.sql语句test.sql
CREATE TABLE IF NOT EXISTS `user_details` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `first_name_str` varchar(50) DEFAULT NULL, `last_name_str` varchar(50) DEFAULT NULL, `gender` varchar(10) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `status` tinyint(10) DEFAULT NULL, PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10001 ;
2.通过awk命令从sql语句中提取出带类型的字段;
awk -F'[` (]' '{print $6" "$4}' test.sql > testWithType.sqlint user_idvarchar user_namevarchar first_name_strvarchar last_name_strvarchar gendervarchar passwordtinyint status
3.通过awk语句将变量分隔开来并使其后面的单词首字母大写
awk -F'_' '{printf $1;for(i=2;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2);printf "\n"}' testWithType.sql > testWithType1.javaint userIdvarchar userNamevarchar firstNameStrvarchar lastNameStrvarchar gendervarchar passwordtinyint status
4.通过sed命令将上述类型和变量替换为java中的语句;
sed 's/varchar/String/g' testWithType1.java | sed 's/tinyint/int/g' | awk '{printf "private " $1 " " $2 ";\n"}'private int userId;private String userName;private String firstNameStr;private String lastNameStr;private String gender;private String password;private int status;
2.根据sql语句提取的字段和转换的java字段生成yaml文件所需要的语句;
1.sql语句 test.sql
CREATE TABLE IF NOT EXISTS `user_details` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `first_name_str` varchar(50) DEFAULT NULL, `last_name_str` varchar(50) DEFAULT NULL, `gender` varchar(10) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `status` tinyint(10) DEFAULT NULL, PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10001 ;
2.提取目标字段
awk -F'[` (]' '{print $4" "}' test.sql > part1user_id user_name first_name_str last_name_str gender password status
3.转换为驼峰命名方法,外加用来连接的冒号
awk -F'[` (]' '{print $4}' test.sql |awk -F'_' '{printf " " $1;for(i=2;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2);printf "\n"}' > part2
userId userName firstNameStr lastNameStr gender password status
4.连接组成.yaml文件的两部分
paste -d':' part1 part2user_id : userIduser_name : userNamefirst_name_str : firstNameStrlast_name_str : lastNameStrgender : genderpassword : passwordstatus : status
0 0
- 使用sed、awk命令生成.java或.yaml文件所需语句
- 使用shell脚本生成*Db.java、*.thrift或*.yaml文件语句
- sed、cut和awk命令的使用
- grep、sed、awk命令使用参数说明
- sed 和 awk命令
- awk sed 命令
- linux中sed命令和awk命令的使用
- grep sed awk命令学习过滤文件内容
- 【unix学习】文件处理4—sed + wget + awk命令
- sed,awk简单使用
- sed、awk使用
- 使用工具生成mybatis所需文件
- 使用sed和awk命令删除第一列
- grep、sed和awk命令的简单使用
- linux下sed和awk命令使用入门
- 使用awk给文件增加一列以及sed使用例子
- Java读取Yaml文件
- java 读写 yaml 文件
- 【LeetCode】 371. Sum of Two Integers
- TransferFile
- 集合框架_ArrayList存储自定义对象并遍历泛型版
- jquery多个相同ID动态绑定同一事件
- tempalte.js例子
- 使用sed、awk命令生成.java或.yaml文件所需语句
- 初学HTML用法大全指导(一)html对文本的设置
- Crashing Robots(POJ 2632)(模拟)
- JAVA 16方格排序游戏
- C Primer Plus 练习 P85
- 关于list集合
- PHP微信支付开发之扫描支付(模式二)后如何回调
- 第三章 装饰者模式
- win8.1重装后修复ubuntu引导