通過表名獲得列名信息,返回json串

  /**
	 * 根據表名獲取列信息
	 */
	@Override
	public JSONArray getTableColumnInfoForForeign(final String tableName) {
		//獲取當前數據鏈接
		SessionFactory sessionFactory = getHibernateTemplate().getSessionFactory();
		Session session = sessionFactory.getCurrentSession();
		Connection conn = session.connection();
		        
		PreparedStatement pst = null;
		ResultSet rs = null;
		JSONObject json = new JSONObject();
		JSONArray jsonArr = new JSONArray();
		int count = 0;
		String sql = "DESCRIBE " + "zq_" + ChangeUTF_16.enUnicode(tableName).toLowerCase();
		
		try {
			pst = conn.prepareStatement(sql);
			rs = pst.executeQuery();
			
			while(rs.next()){
				TableColumnBean column = new TableColumnBean();
				if (!"id".equals(rs.getString(1))){
					String columnNorm = ChangeUTF_16.deUnicode(rs.getString(1).substring(2)) + " (" + rs.getString(2) + ")";
					if (count == 0){
						column.setColumnId("");
						column.setColumn("");
					}
					else{
						column.setColumnId(columnNorm);
						column.setColumn(columnNorm);
					}
					
					jsonArr.add(column);
					count ++;
				}
			System.out.println(jsonArr.toString());	
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
					
		return jsonArr;
		
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章