jdbc:主要由以下界面(interface) 和类组成:
?? Driver (interface)
?? DriverManager (class)
?? Connection (interface)
?? Statement (interface)
?? PreparedStatement (interface)
?? CallableStatement (interface)
?? ResultSet (interface)
?? DatabaseMetaData (interface)
?? ResultSetMetaData (interface)
?? Types (class)
java.sql.DriveManager:
用来处理装载驱动程序并且为创建新的数据库连接提供支持
java.sql.Connection:
完成对某一指定数据库连接功能
java.sql.Statement:
在一个给定的连接中作为SQL执行声明的容器;(执行静态sql语句)
它包含了两个重要的子类型:
java.sql.PrepareStatement:
用于执行预编译的SQL 声明
java.sql.CallableStatement:
用于执行数据库中存储的过程的调用
java.sql.ResultSet:
控制对于给定声明取得结果列的途径 (游标对象 抓取行)
可以用Connection 接口的getAutocommit()方法,
检验数据库的目前自动提交模式设置。
用命令con.setAutoCommit(false) 方法关闭自动提交模式。
用con.commit() 命令提交事务。
用con.rollback() 回滚一个事务
存储过程的调用:
{call AuthorList} 如果过程不需要参数
{call AuthorList[(?, ?)]} 如果过程需要两个参数
函数的调用: {? = call AuthorList[(?, ?)]} 如果参数需要两个参数并返回一个
批处理:
ps.addBatch();//将数据打包 ????
ps.executeBatch();//执行打包后的sql
DatabaseMetaData接口:
提供:getColumns()方法,该方法需要传进4个参数:
#---第一个参数:数据库名称
MySQL:填入对应的数据库名
oracle:null或Connection的实例对象中的getCatalog()方法
#---第二个参数:模式
数据库的登录名,orcl其登录名要大写,MySQL可以忽略
#---第三个参数:表名
#---第四个参数:列类型
为空时,获取表对应的所有列,不为空的时候获取该值的列的所有信息
ResultSet rs = stmt.executeQuery();
?? ResultSetMetaData rsmd = rs.getMetaData();
?? rsmd.getColumnCount() //返回目前ResultSet 对象的列数。
?? rsmd.getColumnDisplaySize(int column); //返回column指定的列的最大宽度。
?? rsmd.getColumnLabel(int column) //返回column 指定列的标签。
?? rsmd.getColumnName(int column) //返回column 指定列的列名。
//获取列名和列数据
Connection conn = DbUtils.getConnection();
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from dept ");
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
String columnName = metaData.getColumnName(i + 1);
int type = metaData.getColumnType(i + 1);
System.out.print(columnName + "\t");
}
System.out.println();
// 获取数据
while (resultSet.next()) {
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
System.out.print(resultSet.getString(i + 1) + "\t");
}
System.out.println();
}
?? Driver (interface)
?? DriverManager (class)
?? Connection (interface)
?? Statement (interface)
?? PreparedStatement (interface)
?? CallableStatement (interface)
?? ResultSet (interface)
?? DatabaseMetaData (interface)
?? ResultSetMetaData (interface)
?? Types (class)
java.sql.DriveManager:
用来处理装载驱动程序并且为创建新的数据库连接提供支持
java.sql.Connection:
完成对某一指定数据库连接功能
java.sql.Statement:
在一个给定的连接中作为SQL执行声明的容器;(执行静态sql语句)
它包含了两个重要的子类型:
java.sql.PrepareStatement:
用于执行预编译的SQL 声明
java.sql.CallableStatement:
用于执行数据库中存储的过程的调用
java.sql.ResultSet:
控制对于给定声明取得结果列的途径 (游标对象 抓取行)
可以用Connection 接口的getAutocommit()方法,
检验数据库的目前自动提交模式设置。
用命令con.setAutoCommit(false) 方法关闭自动提交模式。
用con.commit() 命令提交事务。
用con.rollback() 回滚一个事务
存储过程的调用:
{call AuthorList} 如果过程不需要参数
{call AuthorList[(?, ?)]} 如果过程需要两个参数
函数的调用: {? = call AuthorList[(?, ?)]} 如果参数需要两个参数并返回一个
批处理:
ps.addBatch();//将数据打包 ????
ps.executeBatch();//执行打包后的sql
DatabaseMetaData接口:
提供:getColumns()方法,该方法需要传进4个参数:
#---第一个参数:数据库名称
MySQL:填入对应的数据库名
oracle:null或Connection的实例对象中的getCatalog()方法
#---第二个参数:模式
数据库的登录名,orcl其登录名要大写,MySQL可以忽略
#---第三个参数:表名
#---第四个参数:列类型
为空时,获取表对应的所有列,不为空的时候获取该值的列的所有信息
ResultSet rs = stmt.executeQuery();
?? ResultSetMetaData rsmd = rs.getMetaData();
?? rsmd.getColumnCount() //返回目前ResultSet 对象的列数。
?? rsmd.getColumnDisplaySize(int column); //返回column指定的列的最大宽度。
?? rsmd.getColumnLabel(int column) //返回column 指定列的标签。
?? rsmd.getColumnName(int column) //返回column 指定列的列名。
//获取列名和列数据
Connection conn = DbUtils.getConnection();
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from dept ");
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
String columnName = metaData.getColumnName(i + 1);
int type = metaData.getColumnType(i + 1);
System.out.print(columnName + "\t");
}
System.out.println();
// 获取数据
while (resultSet.next()) {
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
System.out.print(resultSet.getString(i + 1) + "\t");
}
System.out.println();
}