怎么获得数据库表结构。
来源:互联网 发布:淘宝描述店铺怎么写 编辑:程序博客网 时间:2024/06/10 03:15
怎么获得数据库表结构。
1,在注入时初始化这两个模板。
/** * 注入数据源, 该数据源在Spring配置文件中配置 * 在注入时初始化这两个模板 * @param dataSource * Method create author: yanwei * Method create dateTime: 2011-11-2 下午03:43:13 * Method update author: * Method update dateTime: */ @Resource public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; jdbcTemplate = new JdbcTemplate(dataSource); simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource); }
2,获取表结构信息。
1 /** 2 * 获取表结构信息 3 * @param tableName 表名 4 * @return 5 * @throws Exception 6 * Method create author: yanwei 7 * Method create dateTime: 2011-12-21 下午01:01:17 8 * Method update author: 9 * Method update dateTime:10 */11 public List<DsClientColumnInfo> getDsTableColumnInfo(String tableName) throws DataAccessFailureException{12 13 ResultSet resultSet = null;14 Connection connection = null;15 java.util.List<DsClientColumnInfo> clientTableInfos = new ArrayList<DsClientColumnInfo>();16 try {17 connection = this.jdbcTemplate.getDataSource().getConnection();18 //获得列的信息19 resultSet = connection.getMetaData().getColumns(null, null, tableName, null);20 while (resultSet.next()) {21 //获得字段名称22 String name = resultSet.getString("COLUMN_NAME");23 //获得字段类型名称24 String type = resultSet.getString("TYPE_NAME");25 //获得字段大小26 int size = resultSet.getInt("COLUMN_SIZE");27 //获得字段备注28 String remark = resultSet.getString("REMARKS");29 DsClientColumnInfo info = new DsClientColumnInfo(null, null, null, name, remark, size, type, "false");30 clientTableInfos.add(info);31 }32 33 //获得主键的信息34 resultSet = connection.getMetaData().getPrimaryKeys(null, null, tableName);35 while(resultSet.next()){36 String primaryKey = resultSet.getString("COLUMN_NAME");37 //设置是否为主键38 for (DsClientColumnInfo dsClientColumnInfo : clientTableInfos) {39 if(primaryKey != null && primaryKey.equals(dsClientColumnInfo.getClientColumnCode()))40 dsClientColumnInfo.setIsParmaryKey("true");41 else 42 dsClientColumnInfo.setIsParmaryKey("false");43 }44 }45 46 //获得外键信息47 resultSet = connection.getMetaData().getImportedKeys(null, null, tableName);48 while(resultSet.next()){49 String exportedKey = resultSet.getString("FKCOLUMN_NAME");50 //设置是否是外键51 for (DsClientColumnInfo dsClientColumnInfo : clientTableInfos) {52 if(exportedKey != null && exportedKey.equals(dsClientColumnInfo.getClientColumnCode()))53 dsClientColumnInfo.setIsImportedKey("true");54 else 55 dsClientColumnInfo.setIsImportedKey("false");56 }57 }58 59 60 } catch (Exception e) {61 e.printStackTrace();62 throw new RuntimeException("获取字段信息的时候失败,请将问题反映到维护人员。" + e.getMessage(), e);63 } finally{64 if(resultSet != null)65 try {66 resultSet.close();67 } catch (SQLException e) {68 e.printStackTrace();69 throw new DataAccessFailureException("关闭结果集resultSet失败。",e);70 }finally{71 if(connection != null)72 try {73 connection.close();74 } catch (SQLException e) {75 e.printStackTrace();76 throw new DataAccessFailureException("关闭连接connection失败。",e);77 }78 }79 }80 81 Set set = new HashSet();82 set.addAll(clientTableInfos);83 clientTableInfos.clear();84 clientTableInfos.addAll(set);85 return clientTableInfos;86 }
3,获得数据库中所有的表。
1 /** 2 * 获得数据库中所有的表 3 * @return 4 * Method create author: yanwei 5 * Method create dateTime: 2012-1-5 上午11:23:54 6 * Method update author: 7 * Method update dateTime: 8 * @throws SQLException 9 */10 public Map<String, String> getDatabaseTables() throws DataAccessFailureException{11 ResultSet resultSet = null;12 Connection connection = null;13 Map<String, String> map = new HashMap<String, String>();14 try {15 String[] types = {"TABLE"}; 16 connection = this.jdbcTemplate.getDataSource().getConnection();17 String databaseName = SynXmlAnalysis.getElementValueByName(DATABASE_NAME);18 resultSet = connection.getMetaData().getTables(null, databaseName, null, types);19 while(resultSet.next()){20 String tableName = resultSet.getString("TABLE_NAME");21 String remark = resultSet.getString("REMARKS");22 map.put(tableName, remark);23 }24 } catch (SQLException e) {25 e.printStackTrace();26 throw new DataAccessFailureException(e);27 }catch (Exception e) {28 e.printStackTrace();29 }finally{30 if(resultSet != null)31 try {32 resultSet.close();33 } catch (SQLException e) {34 e.printStackTrace();35 throw new DataAccessFailureException("关闭结果集resultSet失败。",e);36 }finally{37 if(connection != null)38 try {39 connection.close();40 } catch (SQLException e) {41 e.printStackTrace();42 throw new DataAccessFailureException("关闭连接connection失败。",e);43 }44 }45 46 }47 return map;48 }
- 怎么获得数据库表结构。
- 怎么获得数据库表结构
- 怎么获得数据库表结构。
- ,怎么获得数据库表结构。
- 怎么获得windows版Redis数据库
- SQL获得表结构
- 只有.frm 怎么还原数据库表的结构
- 自动生成表结构 sql 从已知数据库获得创建表的结构 sql server
- oracle 怎么读取表结构和注释,生成数据库结构文档
- rs.getMetaData() 获得表结构
- 获得内表结构信息
- rs.getMetaData() 获得表结构
- rs.getMetaData() 获得表结构
- linux下如何获得一个mysql数据库的表结构.txt
- GetOleDbSchemaTable获得数据库中的表名和其他一些结构,例如:视图,存储过程
- mysql数据库怎么获得当前日期? JSP,mysql
- 怎么获得属性表的field
- SQL 获得数据库中的表
- 2013元宵节
- 关于adb remount 失败:remount failed: Operation not permitted
- 数据结构:队列(循环数组实现)
- C语言运算符优先级和口诀
- 人脸识别最终版
- 怎么获得数据库表结构。
- 唯美手绘美女 性感蝴蝶天使 仙女 金发女郎
- 理解 /etc/passwd 文件
- Drupal服务器迁移相关配置
- Oracle 操作系统(外部用户)验证 登陆database,遭遇 ora-27121
- 概念车-1
- string和CString的头文件
- CPSMini项目即将发布
- chrome中Web开发工具插件