神兽坐镇!!
...
...
OK,进入主题,上篇说到了代码生成工具,只是演示了一下简单的操作流程。那么,说好了,这篇是贴码文,在贴码之前先大体说下原理吧(大神止步吧...)......
说到需要生成文件,不得不说说在项目开发中那些让码农们头疼的事:在项目开发中最让人头疼的就是把数据库表字段对应成java实体属性,一个数据库如果有几十个表,单单靠手写java实体的话,等项目上线了,估计实体刚建完
伦理片 http://www.dotdy.com/
再一个就是对数据库进行操作的mapper文件,一般的业务上都包括 增删改查(批/单),以及对应实体的 resultMap定义。此项工作如果没有工具的帮助,就相当于重复造轮子。因为增删改查(批/单)区别就在于表名不同、resultMap区别就在于字段不同......
以上只是简单的举证了一下(不要嫌俺啰嗦,俺只是深恶痛绝...),说回俺这个代码生成工具,原理莫过于获取系统中的数据库列表,根据数据库获取单个数据库下的所有数据表,最后一步是最重要也是最麻烦的,要获取数据表中的字段、字段类型、字段注释等等,因为要根据字段类型生成对应的java类型变量。
(神马~~!!这TM就是所谓的原理?酱简单?你TM是不是唬我?)
没错,就是这么简单,天地良心

下面到重点部分了,贴码!!
- 获取所有数据库
/**
* @Description 获取数据库列表
* @author zhangyd
* @date 2015年12月9日 上午10:17:33
* @param mybatisSqlForm
* @return
*/publicList<String> getDbNameList(TableForm mybatisSqlForm){List<String> list =newArrayList<String>();ResultSet rs =null;Connection conn =null;Statement statement =null;try{String sql ="show databases";
rs = getResultSet(conn, statement, mybatisSqlForm.getDbAddress(), mybatisSqlForm.getDbLoginName(),
mybatisSqlForm.getDbPassword(), sql.toString());while(rs.next()){
list.add(rs.getString(1));}}catch(SQLException e){
e.printStackTrace();}finally{try{if(rs !=null){
rs.close();}}catch(SQLException e){
e.printStackTrace();}try{if(statement !=null)
statement.close();}catch(SQLException e){
e.printStackTrace();}try{if(conn !=null)
conn.close();}catch(SQLException e){
e.printStackTrace();}}return list;}
获取数据库也是用的最基本的sql语句:show databases;
影音先锋电影 http://www.iskdy.com/
- 获取数据库表列表
/**
* @Description 获取字段名 列表
* @author zhangyd
* @date 2015年12月9日 上午10:18:07
* @param mybatisSqlForm
* @return