1. 程式人生 > >2018暑假周進度1

2018暑假周進度1

trace sql plus man led null prepare failed 12c rom

(1)本周學習Oracle數據庫的基本知識。

參考書:

技術分享圖片

安裝Oracle數據庫12c版本。

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

安裝完成。

技術分享圖片

解決問題時間:半天(本周沒怎麽學習)

(2)下周準備學習Oracle數據庫操作,結合使用java語言,eclipse環境進行學習。

(3)遇到的問題

問題1:使用用戶、口令登陸EM被拒絕。

解決:

打開sql plus

技術分享圖片

/as sysdba使用超級管理員登陸

alter user system account unlock;解除鎖定

技術分享圖片

登陸成功

技術分享圖片

問題2:使用eclipse、navicat 連接數據庫報錯

相應服務是否打開

orcale ora-12541:tns:no listener

技術分享圖片

ORA-28547:connection to server failed, probably oracle net admin error

解決:navicat oci.dll版本不兼容

下載instantclient-basic-nt 我的是32位

技術分享圖片

navicat 設置

技術分享圖片

連接成功

技術分享圖片

問題3:連接eclipse

導入jar包

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

數據庫連接代碼:

package orcl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class util { //主方法 public static void main(String[] args) throws SQLException { OracleJdbcTest test = new OracleJdbcTest(); try{ test.query("drop table testjdbc"); } catch(SQLException e){} test.query("create table testjdbc(id int,name nchar(20))"); test.query(
"insert into testjdbc values(1,‘數據庫‘)"); test.query("insert into testjdbc values(2,‘連接成功‘)"); test.query("SELECT * FROM testjdbc",true); test.close(); } } class OracleJdbcTest{ //數據庫連接對象 private static Connection conn = null; private static String driver = "oracle.jdbc.driver.OracleDriver"; //驅動 private static String url = "jdbc:oracle:thin:@//127.0.0.1:1521/orcl"; //連接字符串 private static String username = "system"; // 用戶名 private static String password = "luohaochi"; // 密碼 //獲取連接對象 private static synchronized Connection getConn(){ if(conn==null){ try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } return conn; } //執行查詢語句 public void query(String sql,boolean isSelect) throws SQLException { PreparedStatement pstmt; try { pstmt = getConn().prepareStatement(sql); // 建立一個結果集,用來保存查詢出來的結果 ResultSet rs = pstmt.executeQuery(); while (rs.next()) { String name = rs.getString("name"); System.out.println(name); } rs.close(); pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } public void query(String sql) throws SQLException { PreparedStatement pstmt; pstmt = getConn().prepareStatement(sql); pstmt.execute(); pstmt.close(); } //關閉連接 public void close(){ try { getConn().close(); } catch (SQLException e) { e.printStackTrace(); } } }

2018暑假周進度1