JDBC连接Oracle数据库,查看表结构,调用存储过程

来源:互联网 发布:php文件管理系统 编辑:程序博客网 时间:2024/05/26 14:09

1、封装JDBC连接类,测试是否获取连接

package com.yyb.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBUtil {private static final String DRIVER = "oracle.jdbc.OracleDriver";private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";private static final String USER = "scott";private static final String PASSWORD = "tiger";public static Connection getConnection() {Connection conn = null;try {Class.forName(DRIVER);conn = DriverManager.getConnection(URL, USER, PASSWORD);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}public static void close(ResultSet rs, Statement stmt, Connection conn) {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}public static void main(String[] args) {System.out.println(DBUtil.getConnection());}}
注:连接mysql数据库

DRIVER :com.mysql.jdbc.Driver

URL :jdbc:mysql://localhost:3306/schemaName[?user=root][&password=root]


2、查看表结构,输出到控制台

package com.yyb.db;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;public class DESC {public static void main(String[] args) {String sql = "select * from emp";Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;ResultSetMetaData rsmd = null;try {conn = DBUtil.getConnection();pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();rsmd = rs.getMetaData();int columnCount = rsmd.getColumnCount();System.out.println("字段名" + "\t" + "数据类型" + "\t" + "允许为空");for (int i = 1; i <= columnCount; i++) {String columnName = rsmd.getColumnName(i);String columnTypeName = rsmd.getColumnTypeName(i);int f = rsmd.isNullable(i);System.out.println(columnName + "\t" + columnTypeName + "\t" + f);}} catch (SQLException e) {e.printStackTrace();}finally{DBUtil.close(rs, pstmt, conn);}}}


3、用JDBC调用存储过程

package com.yyb.db;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.SQLException;import java.sql.Types;public class Procedure {public static void main(String[] args) {Connection conn = null;CallableStatement cstmt = null;try {conn = DBUtil.getConnection();cstmt = conn.prepareCall("{call procedureName(?,?,?)}");cstmt.registerOutParameter(3, Types.INTEGER);cstmt.setString(1, "yyb");cstmt.setInt(2, 22);cstmt.execute();} catch (SQLException e) {e.printStackTrace();} finally {try {if (cstmt != null) {cstmt.close();}if (conn != null) {conn.close();}} catch (Exception e) {e.printStackTrace();}}}}



1 0
原创粉丝点击