eclipse通过ojdbc连接oracle

5 篇文章 0 订阅
2 篇文章 0 订阅
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * jdbc java数据库连接
 * jdbc是java官方提供的一套接口,用于连接并操作数据库
 * 不同的数据库厂商都提供了一套jdbc的实现类,并以jar包形式发布,
 * 用于使我们的程序可以通过这套实现类来操作其数据库,这套jar称为驱动。
 * 
 * 1.DriverManager
 *  DriverManager是实现类,用于加载数据库驱动,并与数据库连接,之后产生Connection
 * 2.Connection接口
 *  表示与数据库的连接,负责管理事务,创建Statement实例
 * 3.Statement  接口
 * 负责执行sql语句
 * 4.ResultSet接口
 * 表示查询结果集
 */
public class day_8_18 {
    public static void main(String[] args) {
        Connection conn=null;
        try{
            /**
             * 连接数据库的步骤:
             * 1.加载类库(驱动jar包)到jvm
             * 2.通过DriverManager建立连接,这里会加载jar包中的jdbc实现类来与数据库建立连接
             * 3.通过Connection创建Statement对象
             * 4.通过Statement执行sql语句
             * 5.若执行的是DQL语句,则会得到查询结果集Result,遍历该结果集得到查询内容
             * 6.关闭连接
             */
            /**
             * 1.加载驱动包
             * 不同的数据库,驱动包路径不同
             */
            Class.forName("oracle.jdbc.driver.OracleDriver");
            /**
             * 2.加载驱动建立连接
             * 使用DriverManager的静态方法getConnection
             * 该方法要求传入三个参数:
             * 1.数据库地址 --- oracle数据库的端口号(默认):1521,sid:xe
             * 2.登陆数据库的用户名
             * 3.密码
             * oracle的格式:
             * jdbc:oracle:thin:@url:port:sid
             */
            conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ZSP","123");
            System.out.println("与数据库建立连接!");
            /**
             * 3创建Statement
             * 执行不同种类的SQL语句有相应的方法
             * (1)int executeUpdate(String sql):专门执行DML语句的方法,返回值是整数,表示执行了该DML语句后,影响了表中多少条数据
             * (2)ResultSet executeQuery(String sql):专门执行DQL语句的方法,返回值为查询结果集
             * (3)boolean execute(String sql):sql语句都可以执行,一般用来执行DDL语句,返回true时执行的是DQL语句(有结果集),否则是其他类型语句
             */
            Statement state=conn.createStatement();
            /**
             * 执行DDL语句,创建表userinfo
             * 字段:
             * id number(6)             主键
             * username varchar2(32)    用户名
             * password varchar2(32)    密码
             * email varchar2(50)       邮箱
             * nickname varchar2(32)    昵称
             * account number(10,2)     账户余额
             */
            String sql="create table userinfo( "
                    + "id number(6), "
                    + "username varchar2(32), "
                    + "password varchar2(32), "
                    + "email varchar2(50), "
                    + "nickname varchar2(32), "
                    + "account number(10,2) "
                    + ")";

            /**
             * 创建一个序列
             * seq_userinfo_id
             */
            String sql_seq="create sequence seq_userinfo_id start with 1 increment by 1";

            /**
             * DQL
             * 查询表记录
             */
            String sql_dql="select id,username,password,email,nickname,account from userinfo";
            /**
             * ResultSet表示查询的结果集
             * 遍历结果集的步骤为:
             * 1.先判断结果集是否还有下一条记录
             * 2.若有,可以获取该条记录各个字段的值,如此反复遍历完结果集
             * 遍历的方法:
             * boolean next():该方法会让指针指向结果集下一条记录并是让ResultSet表示该条记录,若返回值为false则表示没有记录了
             * 一组getXXX(String colName)方法:获取字符串类型字段值用getString,获取整数用getInt,小数用getDouble等
             * 
             */
            ResultSet rs=state.executeQuery(sql_dql);//获取结果集
            while(rs.next()) {
                //获取id
                int id=rs.getInt("id");
                //获取username
                String username=rs.getString("username");
                String password=rs.getString("password");
                String email=rs.getString("email");
                String nickname=rs.getString("nickname");
                //获取account
                double account=rs.getDouble("account");

                System.out.println(id+","+username+","+password+","+email+","+nickname+","+account);
            }

//          String sql_drop="drop table userinfo";//删除表
//          System.out.println(sql);//打桩

//          state.execute(sql_seq);
//          System.out.println("序列创建完毕!");
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            if(conn!=null) {
                try {
                    conn.close();//断开连接
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰河家园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值