分享:用Java枚举类定义表,并且生成查询语句。

okgoood 2012-09-10 05:13:13
首先我们定义一个Student表,包含姓名、年级、班级等数据。

enum Student {
Name(Type.CHAR, 3),
Grade(Type.NUMBER, 2),
Class(Type.NUMBER, 2),
Lesson(Type.VARCHAR, 12),
Score(Type.NUMBER, 2), ;

Type type;
int length;

Student(Type _type, int _length) {
type = _type;
length = _length;
}
}


其中的数据类型可以再定义一个枚举类:

enum Type {
CHAR, VARCHAR, NUMBER, SMALLINT;
}


接着就是本文的重点了,生成SQL语句:

public class NewTest {
public static void main(String[] args) {
String sql = "CREATE TABLE " + Student.class.getName() + "{\n";
for (Student s : Student.values()) {
sql += "\t" + s + " ";
sql += s.type;
sql += "(" + s.length + "),\n";
}
sql += "}";
System.out.println(sql);
}
}


运行结果:
CREATE TABLE Student{
Name CHAR(3),
Grade NUMBER(2),
Class NUMBER(2),
Lesson VARCHAR(12),
Score NUMBER(2),
}


可以看出生成的CREATE最后多一个空格,我们可以进一步完善。
这里只是抛砖引玉,其实我们可以如法炮制,生成Insert,update等语句。

还可以通过这样的方法我们可以自己写一个简单的类似ORM的框架。
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天子剑毅 2012-09-11
  • 打赏
  • 举报
回复
生成SQL还是用实体bean来的方便一些吧,枚举基本不会用
okgoood 2012-09-10
  • 打赏
  • 举报
回复
没人顶?自己顶!

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧