最近因为工作需要,需要读取数据库表结构生成对应的代码,尝试了好多办法,发现以下的这种办法比较好的一种方式:
数据表结构如下:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自动编号',
`name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',
`age` tinyint(4) NOT NULL DEFAULT '1' COMMENT '年龄',
`password` varchar(20) NOT NULL DEFAULT '' COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
我们现在要在java中获取数据库表结构,通过他的属性,生成对应的代码:直接看代码
conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstm = conn
.prepareStatement("SELECT a.COLUMN_NAME,a.COLUMN_COMMENT FROM information_schema.`COLUMNS` a
WHERE a.TABLE_SCHEMA='test' AND a.TABLE_NAME='user'");
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1) + ":" + rs.getString(2));
}
rs.close();
pstm.close();
conn.close();
上面就是核心代码,只要有了它,什么样的数据库都不成问题,都可以通过上述方法来生成对应的java类.