2018暑假周进度1

Posted luohaochi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018暑假周进度1相关的知识,希望对你有一定的参考价值。

(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的主要内容,如果未能解决你的问题,请参考以下文章

暑假第二周进度报告

暑假周进度总结

大二暑假假期周进度02

暑假第一周进度报告

暑假第一周学习进度报告

暑假假期周进度报告(第四周)