- 浏览: 580513 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From:http://blog.csdn.net/joeyshi/article/details/4138466
做制作开发平台时,首要的一点是如何取得数据库表结构信息。一般通用的做法就是通过JDBC中的ResultSetMetaData类来进行操作,当你取得了数据库表结构信息后,比如说表的每个字段名称,字段类型等。
首先取得数据库连接后取得DatabaseMetaData。
DatabaseMetaData dbmd = con.getMetaData();
con是一个数据库连接,直接通过连接信息取得。
然后我们就可以取当前数据库中的所有表:
ArrayList v = new ArrayList();
ResultSet rs = null;
String[] typeList = new String[] { "TABLE" };
rs = dbmd.getTables(catalog, schema, null, typeList);
for (boolean more = rs.next(); more; more = rs.next()) {
String s = rs.getString("TABLE_NAME");
String type = rs.getString("TABLE_TYPE");
if (type.equalsIgnoreCase("table") && s.indexOf("$") == -1)
v.add(s);
}
其中的rs.getString("TABLE_NAME");方法就是取得表名。
取得表名我们在执行select * from tablename 的方法,取得结果集:
String sql = "select * from "+tableName;
Statement state = con.createStatement();
ResultSet rs = state.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData() ;
for(int i = 1; i <= rsmd.getColumnCount(); i++)
{
String colname = rsmd.getColumnName(i);
String typeName = rsmd.getColumnTypeName(i);
int itype = rsmd.getColumnType(i);
int size = rsmd.getColumnDisplaySize(i);
int precision=rsmd.getPrecision(i);
int n = rsmd.isNullable(i);
int scale=rsmd.getScale(i);
boolean nullable = true;
switch (n) {
case 0: // '/0'
nullable = false;
break;
case 1: // '/001'
nullable = true;
break;
default:
nullable = true;
break;
}
SQLColumn col = new SQLColumn(colname);
SQLType type = simpleType(typeName, itype);
if (type.allowsParameters())
type.setParameterString("" + size);
col.setType(type);
col.setIType(itype);
col.setSize(size);
col.setScale(scale);
col.setPrecision(precision);
col.setNullable(nullable);
col.setReadOnly(rsmd.isReadOnly(i));
col.setAutoIncrement(rsmd.isAutoIncrement(i));
col.setSearchable(rsmd.isSearchable(i));
col.setCurrency(rsmd.isCurrency(i));
col.setCaseSensitive(rsmd.isCaseSensitive(i));
col.setSigned(rsmd.isSigned(i));
col.setClassType(rsmd.getColumnClassName(i));
col.setDisName(rsmd.getColumnLabel(i));
if ( col.getDisName().length() > 0 )
col.setName(col.getDisName()) ;
columns.add(col);
}
以上操作就取得了表的每个字段信息。得到这些字段信息,就可以为数据库层的各种操作生成所需的代码了。
发表评论
-
jBoss下java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator
2012-01-17 18:09 1675项目中使用了hibernate-distribution-3. ... -
JavaScript去除空格的三种方法 (trim)
2012-02-28 11:15 780方法一:个人认为最好的方法.采用的是正则表达式,这是最核 ... -
学习Oracle中Blob和Clob一点点心得
2012-02-28 11:19 1061Blob是指二进制大对象也就是英文Binary Larg ... -
oracle to_date()用法
2012-02-28 11:19 11901、select to_date('2011-01-01 00 ... -
racle to_char格式化函数
2012-02-28 11:19 900Postgres 格式化函数提供一套有效的工具用于把各种数据类 ... -
Oracle数据类型
2011-12-05 17:40 0ORACLE的数据类型 -- ORACLE的数据类型常用的数据 ... -
如果要得到一个表的某一列的sqltype
2011-12-05 17:38 0如果要得到一个表的某一列的sqltype,有两种方式。 之所以 ... -
Oracle 配置TNS
2011-12-02 11:36 815编辑相应目录的tnsnames.ora文件:oracle10g ... -
Java删除文件及文件夹
2011-12-01 10:05 895Java删除文件及文件夹: p ... -
SQLException: ORA-01460: unimplemented or unreasonable conversion reque
2011-11-30 18:04 2488From:http://lianj-lee.iteye. ... -
Java中文乱码
2011-12-01 10:05 861在Java Web系统中出现中 ... -
Eclipse项目的叹号和X号问题解决方法
2011-11-30 13:30 1927经常看到一些人遇到这个问题,自己也偶尔会碰到,故总结了该问题的 ... -
JSTL的EL表达式失效:${ctx}
2011-12-01 10:06 1790项目中使用了JSTL1.1,然后在web.xml中使用了 ... -
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
2011-12-01 10:07 4998java.lang.ClassNotFoundExceptio ... -
java.lang.NoClassDefFoundError: javax/el/ELException
2011-12-01 10:08 1482From:http://blog.csdn.net/gtuu0 ... -
java.lang.ClassNotFoundException: javax.el.ELException
2011-11-30 10:22 0在myeclipse 7.5中,如果把jsp-api.jar ... -
java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit
2011-11-30 10:10 0java.lang.NullPointerExcep ... -
使用JSTL标签来访问list并判断list中的选中项
2011-11-29 10:15 1124From:http://www.abc188.com/info ... -
org.springframework.web.HttpMediaTypeNotAcceptableException:
2011-11-29 10:13 11200From:http://cmzx3444.iteye.com/ ... -
将前台json对象传入java后台
2011-11-29 10:01 1526http://wangqinghua123.iteye.com ...
相关推荐
这个小型图书管理系统是一个典型的Java Swing桌面应用程序,利用JDBC连接SQL Server数据库来实现图书和读者信息的管理。通过以上分析,可以看出该项目不仅涉及到了Java编程的基础知识,还包括了数据库管理和图形用户...
掌握查询优化技巧,包括编写高效的SQL语句、合理设计表结构和选择合适的数据类型。 9. **数据库系统架构**:理解数据库服务器、数据库实例、数据库文件的构成,以及分布式数据库和云数据库的基本概念。 10. **...
使用CREATE TABLE定义表结构,包括字段名、数据类型和约束;使用INSERT INTO添加数据;使用SELECT查询数据;以及UPDATE和DELETE语句来修改和删除数据。 4. **数据操作**:在掌握了基本的SQL语法后,你需要学习如何...
例如,DBA需要知道如何使用SQL*Plus进行数据库查询和管理,使用Explain Plan分析查询执行计划,使用索引来提高查询速度,以及如何通过ALTER TABLE和ALTER INDEX等命令调整表和索引结构。 在面试中,关于Oracle的...
这通常通过数据库连接驱动程序实现,例如JDBC(Java Database Connectivity)用于Java,ODBC(Open Database Connectivity)用于多种编程语言,或者Python的pymysql和psycopg2库等。 学习数据库连接,我们需要掌握...
10. **数据库应用开发**:这部分讲解如何使用数据库API(如JDBC或ODBC)进行数据库编程,以及如何利用面向对象技术开发数据库应用。 11. **案例分析与实践**:通过实际的数据库设计和应用案例,帮助考生将理论知识...
6. **数据库应用开发**:这部分内容通常涵盖如何使用数据库API(如JDBC、ODBC)进行应用程序开发,以及如何设计和实现数据库驱动的Web应用。考生需要理解数据库连接池、事务处理在应用中的实现,以及如何利用存储...
关系型数据库是最常见的类型,其核心原理是基于关系模型,以表格形式存储数据,并通过SQL(结构化查询语言)进行操作。理解数据库的基本术语,如实体、属性、键、索引和关系,是学习数据库的基础。 接下来,我们...
系统的数据库表结构合理划分,包括用户表、参数表、读者类型表、图书信息表、借阅记录表等。 本系统使用的开发工具包括Eclipse IDE(具体版本为6.0.1),结合J2EE技术,使用了包括但不限于Java 2平台企业版(Java 2...
项目提供了“毕业设计外发.sql”文件,这是数据库脚本,包含了系统所需的所有表结构和初始数据。可能包括用户表、职位表、简历表、应聘记录表等,用于存储和管理各类信息。 五、学习价值 该项目适合Java Web初学者...
- `db`目录:可能包含数据库脚本,用于创建和初始化数据库表。 【学习与实践建议】 1. 阅读并理解每个JSP页面的逻辑,观察如何使用内置对象和脚本元素处理用户请求。 2. 分析Servlet代码,了解如何处理HTTP请求和...
同时,通过Java的JDBC(Java Database Connectivity)技术,我们实现了程序与数据库的连接,使得数据操作得以在代码层面流畅执行。这种面向对象的编程方式使得代码结构清晰,易于理解和维护。 在课程设计过程中,...
将E-R模型转换为具体的数据库表结构,确定每个表的字段、数据类型和约束条件,如学生的ID、姓名、学号,课程的ID、名称、学分等。 2.4 物理结构设计 考虑数据库的存储和访问效率,进行索引设计、分区策略等优化,...
掌握这些基础知识后,你就可以开始创建数据库、设计表结构、执行查询和管理数据了。记得在实践中不断探索和学习,MySQL的世界非常广阔,包含了事务处理、视图、存储过程、触发器等更高级的主题。祝你在MySQL的学习...
而在Java语言中,我们利用GUI图形用户界面和JDBC(Java Database Connectivity)来建立与数据库的连接,实现了数据的增删改查操作。 在两周的课程设计过程中,我们首先进行了系统需求分析和功能设计,针对《小型...
### Java面试宝典之数据库结构详解 #### 一、引言 随着信息技术的快速发展,Java作为一门广泛应用的...通过本文的学习,希望能够帮助大家更好地理解Java中的数据库结构及相关知识点,并在未来的职业发展中取得成功。