package org.data.jdbc; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; public class Jdbc { //数据库连接地址 private static final String url="jdbc:mysql://localhost:3306/data"; //用户名密码 private static final String user="root"; private static final String pwd="123456"; /*** * 数据库查询 * @throws ClassNotFoundException */ public static void query() throws ClassNotFoundException{ Connection conn=null; java.sql.PreparedStatement pst=null; ResultSet re=null; /* * DBC提供了DatabaseMetaData来封装数据库连接对应的数据库信息,通过Connection的getMetaData方法来获取该对象。 * DatabaseMetaData接口通常数据库驱动提供商完成实现,其作用是让用户了解数据库的底层信息。 * 使用该接口可以了解数据库底层的实现,便于完成多个数据库的相互切换。 */ DatabaseMetaData metadata=null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection(url, user, pwd); metadata = conn.getMetaData(); System.out.println("数据库已知的用户: "+ metadata.getUserName()); System.out.println("数据库的系统函数的逗号分隔列表: "+ metadata.getSystemFunctions()); System.out.println("数据库的时间和日期函数的逗号分隔列表: "+ metadata.getTimeDateFunctions()); System.out.println("数据库的字符串函数的逗号分隔列表: "+ metadata.getStringFunctions()); System.out.println("数据库供应商用于 'schema' 的首选术语: "+ metadata.getSchemaTerm()); System.out.println("数据库URL: " + metadata.getURL()); System.out.println("是否允许只读:" + metadata.isReadOnly()); System.out.println("数据库的产品名称:" + metadata.getDatabaseProductName()); System.out.println("数据库的版本:" + metadata.getDatabaseProductVersion()); System.out.println("驱动程序的名称:" + metadata.getDriverName()); System.out.println("驱动程序的版本:" + metadata.getDriverVersion()); System.out.println("驱动程序的版本:" + metadata.getTableTypes()); System.out.println("............................................"); pst= conn.prepareStatement("select * from customerinfo"); //获取数据库列 re=pst.executeQuery(); //数据库列名 ResultSetMetaData data= re.getMetaData(); //getColumnCount 获取表列个数 for(int i=1;i<=data.getColumnCount();i++){ //获取列表 index 从1开始、列名、列类型、列的数据长度 System.out.println(data.getColumnName(i)+"\t"+data.getColumnTypeName(i)+"\t"+data.getColumnDisplaySize(i)); } } catch (SQLException e) { e.printStackTrace(); }finally{ closeConnection(conn, pst, re); } } /** * 关闭数据库链接 * @param conn * @param pst * @param re */ public static void closeConnection(Connection conn,PreparedStatement pst,ResultSet re){ if(conn!=null) try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(pst!=null) try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(re!=null) try { re.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { try { query(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关推荐
5. **数据库元数据**:`Connection`对象提供了获取数据库元数据的方法,如获取所有表名、列信息等。 ```java DatabaseMetaData dbmd = conn.getMetaData(); ResultSet tables = dbmd.getTables(null, null, "%", ...
8. **获取元数据信息**:通过`ResultSet`的`getMetaData`方法获取表结构信息,如列名和列数量。 9. **关闭数据库连接**:最后,按照反向顺序关闭`ResultSet`、`Statement`和`Connection`对象,释放资源。 #### 三...
索引是对数据库中一对多个列值的排序,帮助数据库高效获取数据的数据结构。索引分为普通索引、唯一索引、主键索引、全文索引。优点包括加快检索速度、唯一索引确保每行数据的唯一性、在使用索引的过程可以优化隐藏器...
5. **ResultSetMetaData**: ResultSetMetaData 是JDBC API中的一个接口,用于获取ResultSet对象列的信息,如列的数量、列的名字、列的数据类型等。这有助于程序动态地处理结果集,增强代码的灵活性。 6. **数据库...
getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields....
` 获得结果集 rs 的元信息,然后可以获取元数据中的列的数量和列名。 9. 关闭数据库各对象:按照建立顺序逆序关闭各对象,例如 `rs.close(); st.close(); conn.close();` 第二种方式:JDBC 直接连接 SQL Server ...
通常,LabVIEW通过ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)与各种类型的数据库进行通信。这两个接口允许LabVIEW与SQL(Structured Query Language)进行交互,从而执行数据库操作。...
在Android开发中,数据库是应用存储数据的重要方式之一。Android Studio提供了SQLite数据库的支持,使得开发者可以方便地在移动设备上进行数据的管理。本工程示例主要展示了如何在Android Studio中进行数据库的增删...
在示例代码中,`getString`用于获取学生的名字、年龄、住址和电话,而`getInt`用于获取班级编号。 需要注意的是,`ResultSet`对象的`next()`方法返回`true`时,表示还有更多记录可读;当返回`false`时,表示已经...
标题中的“一个用于分班的数据库格式”揭示了这个数据库是为学校分班系统专门定制的,其目的是有效地管理和分配学生的班级信息。 描述中提到,这个数据库包含超过2000条数据,并基于专业来进行分班。这表明数据库...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储应用程序中的数据。本文将深入探讨如何在Android应用中连接并操作SQLite数据库,主要基于提供...
比如运行`java DumpMethods java.util.Stack`会列出`Stack`类的所有方法。 2. **示例二:判断实例类型** ```java import java.lang.reflect.*; public class InstanceCheck { public static void main(String[] ...
这意味着我们只需要定义一个继承自`BaseModel`的Java类,该类的字段将对应数据库表的列。LitePal自动处理SQL语句的生成,大大简化了数据库操作。 **数据库创建与升级:** 在Android中,每个SQLite数据库都有一个...
在这里,`@DatabaseTable`注解定义了对应的数据库表名,而`@DatabaseField`注解用于标记每个字段为数据库列。`generatedId = true`表示`id`字段是自增主键。 接下来,配置数据库帮助类(Data Access Object,DAO)...
在循环中,可以通过`getString()`, `getDate()`, `getFloat()`等方法获取列的数据。 #### 步骤五:关闭资源 ```java con.close(); ``` 在完成数据库操作后,必须关闭连接以释放资源。 ### 4. 注意事项 - **性能...
在进行数据库查询时,如果需要更复杂的模糊匹配逻辑,可以先从数据库中获取数据,再使用Java中的正则表达式进行进一步的过滤处理。 ```java // 假设从数据库中获取了多个用户名 List<String> names = new ArrayList...
这里创建了一个包含ID、名字和年龄三列的表。 3. **插入数据**: 使用SQLiteDatabase的`insert()`方法来向表中插入数据。例如: ```java ContentValues values = new ContentValues(); values.put(COLUMN_NAME, ...
数据库连接工具有多种,如内置的SQL*Plus,以及Java的JDBC接口,它们允许开发者在本地或远程环境中与数据库进行交互。在不同操作系统中设置`ORACLE_SID`环境变量的方法也有所不同。 查询表结构可以使用`DESC`命令,...
- **知识点**: 使用 JDK 的 `javac` 编译器编译 Java 源程序时,如果一个源文件中定义了 4 个类,则会生成 4 个 `.class` 文件,每个文件的名字与对应的类名一致。 **4. Java Applet 源程序结构** - **知识点**: ...