Jdbc链接数据库步骤: 1、 加载数据库驱动 MySql驱动 Class.forName(“com.mysql.jdbc.Driver”); SqlServer驱动 Class.forName(“com.microsoft.jdbc.sqlserver.SqlServerDriver”); Oracle驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); 2、 构建数据库URL链接 规则:jdbc协议+ip地址或域名+端口+数据库名称 Msql的URL链接 Jdbc.mysql://127.0.0.1:3306/test SqlServer的URL链接 jdbc:sqlserver://localhost:1433; DatabaseName=Test Oracle的URL链接 jdbc:oracle:thin:@127.0.0.1:1521:orcl 3、 获取链接对象 Connection con=DriverManager.getConnection(URL); 4、 关闭数据库链接 con.close(); JDBC的核心API 1、 驱动管理器DriverManager 方法 说明 deregisterDriver(Driver dirver) 从DriverManager的管理列表中删除一个驱动程序,参数driver为要删除的驱动对象 getConnection(String url) 根据指定数据库链接url,简历与数据库的链接,参数为url getConnection(String url,Properties info) 指定数据库url链接和链接属性,info为属性参数 getConnection(String url,String user,String pwd) 指定数据库url链接和登录用户的账号密码。 getDriver() 获取当前DriverManager中已经加载的所有驱动程序,返回为Enumeration registerDriver(Driver driver) 向DriverManager注册一个驱动对象,参数为driver setLogWriter(PrintWriter printwriter) 向指定日志文件 Println(String str) 向指定的日志文件中写入日志 2、 Connection接口 方法 说明 clearWarnings() 清楚为Connection对象报告的所有警告 Close() 关闭连接,释放资源 Commit() 使用从上一次提交或回滚以来执行的所有更改为持久更改,并释放此connection对象当前保持的所有数据库绑定 createStatement() 创建一个Statement对象 isClose() 检索connection是否关闭 prepareStatement() 创建一个prepareStatement对象将参数化为sql语句发送给数据库 rollback() 取消在当前事务中进行的所有更改,并释放此connection对象当前保存的所有数据库锁定 3、 执行SQL语句的Statement接口 方法 说明 Close() 立即释放此Statement对象的数据库和JDBC资源 Excute(String sql) 执行给定的SQL语句,该语句可能返回多个结果 excuteBatch() 将一批命令提交给数据库执行,如果全部命令执行成功,者返回更新计数组成的数组 excuteQuery(String sql) 执行给定的SQL语句,该语句返回单个ResultSet对象 excuteUpdate(String sql,int autoGenerateKeys) 执行给定的SQL语句,并给定标志通知驱动程序由此Statement生成的自动生成键释放可用于检索 excuteUpdate(String sql) 执行给定SQL语句,该语句可能为insert、update、delete语句,或者不返回任何内容的sql语句,可以执行DDL语句 getFetchSize() 检索结果集合的行数,该数根据此Statement对象生成的ResultSet对象默认获取大学 getResultSet() 以ResultSet对象的形式检索当前结果 4、 预编译执行SQL语句的PreparedStatement接口 方法 说明 Execute() 在此PrepareStatement对象中可执行任何sql语句。 ExecuteQuery() 在此PrepareStatement对象中执行SQL查询并返回该查询生成的ResultSet对象 executeUpdate() 在此PrepareStatement对象中执行SQL语句,该语句必须是数据库操作语句,insert、update、delete或DDL语句。DDL语句不返回结果 setBoolean(int index,Boolean x) 将指定参数设置为给定java boolBean值。Index是根据sql语句里的占位符“?”的位置替换为设置的数据。 setByte(int index,Byte x) 将指定参数设置为给定java Byte值 setDate(int index,Date x) 将指定参数设置为给定java Date值 setInt(int index,int x) 将指定参数设置为给定java Int值 setShort(int index,Short x) 将指定参数设置为给定java Short值 setString(int index,String x) 将指定参数设置为给定java String值 5、 结果集ResultSet接口 方法 说明 Absolute(int row) 将指针移动到此ResultSet对象给定的行号 afterLast() 将指针移动到ResultSet对象的最后一行 beforeFirst() 将指针移动到ResultSet对象的开头位于第一行之前 Close() 关闭ResultSet对象 First() 将指针移动到ResultSet对象的第一行 getBoolean(int index) 用boolean类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getByte(int index) 用Byte类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getBytes(int index) 用Byte数组类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getDate(int index) 用Date类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getFloat(int index) 用Float类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getInt(int index) 用Int类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 getString(int index) 用String类型检索ResultSet对象当前行中给定的值,同名函数的参数可以为String类型,传入改行的字段名 Next() 将指针从当前位置移动到下一行,常用于while循环的迭代 6、 及时关闭连接和对象资源 在执行完SQL语句后,必须将使用的链接和对象都使用close()函数关闭对象,释放资源。 相关实例 package com.wgh; import java.util.*; import java.sql.*; public class OraConnect { //创建连接 Connection con=null; Statement st=null; ResultSet rs=null; //创建连接函数 public Connection getOraCon(){ try { //加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //创建连接 con=DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521/orcl","guoyanan","guoyanan"); //判断连接是否连接上 if(con!=null){ return con; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } //执行查询返回ResultSet结果集 public ResultSet Query(String sql) throws SQLException{ //获得连接 con=getOraCon(); //获取Statement对象 st=con.createStatement(); //执行SQL获取ResultSet对象 rs=st.executeQuery(sql); if(rs!=null) return rs; return null; } //执行新增 public int insert(String sql) throws SQLException{ Statement st=con.createStatement(); return st.executeUpdate(sql); } //关闭连接,释放资源 public void oraClose() throws SQLException{ if(rs!=null){ rs.close(); } if(st!=null){ st.close(); } if(con!=null){ con.close(); } } }