JDBC之java使用oracle中scott表实现增删改查.1

本文档介绍了如何在Java中利用JDBC连接Oracle数据库,解锁scott表并进行增删改查操作。通过面向对象和分层模式实现三层架构,包括数据库访问层、业务逻辑层和表示层。首先解锁scott表,然后创建实体类、工具类、DAO接口及其实现,并组织界面。详细步骤包括实体定义、工具类创建、DAO接口及其实现,以实现数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java与oracle数据库连接—–JDBC
Dao工具的创建

**写博客的目的及好处
1,为了把完成的知识点整理出来,
2,等同督促自己做学习总结
3,方便自己及同行者的阅览
4,如有有心者,可以分享更精的知识
————————————————
该案例使用的是oracle中解锁的scott表

案例是在java中使用sql语句来调用数据库中数据,实现在java中实现用户的增删改查操作

oracle 的安装是件头疼的事,意外的就会在安装时让你电脑不得 不去重新装系统了,但是这只是过程,结果我们的电脑上都会有oracle的,我在电脑上设置的oracle状态是手动登陆,就是在电脑–管理—服务,每次开机使用时手动开启,因为,装了oracle电脑就很吃不消额。。。

首先,解锁scott表:在装oracle时使用的密码,去新建一个表空间,在该表中解锁oracle自带的表scott

alter user scott account unlock;---解锁
alter user scott identified  by scott123;---设置密码

–在java中使用面向对象,分层模式
使用的是三层模式,
1,数据库访问层
2,业务逻辑层
3,表示层
步骤—
1,创建实体类,
2,创建工具类
3,dao接口,dao 实现类
4,组织界面

一,定义实体
scott表较简单,创建实体时要注意关联关系,封装外键
二,创建工具类
把每一功能细分好,这样可以更加细致的调用
我把连接,执行sql语句,处理结果最后close,最后调用关闭

“`
public class BaseDao{
//类的成员,属性
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//定义静态常量
private static final String DRIVER_CLASS=“oracle.jdbc.driver.OracleDriver”;
private static final String USER=”scott”;
private static final String PASS=”scott123”;
//连接数据库
public Connection getConnection(){

    try {
        Class.forName("oracle.jdbc.drier.OracleDriver");
        conn=DriverManager.getConnection(URL,"scott","aya123");
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return conn;
}

//增
public int executeUpdate(String sql){
    int ret=0;
    conn=this.getConnection();
    try {
        ps=conn.prepareStatement(sql);
        ret=ps.executeUpdate();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return ret;
}

//重载,带占位符的
public int executeUpdate(String sql ,Object[] parms){
    int ret=0;
    conn=this.getConnection();
    try {
        ps=conn.prepareStatement(sql);  //获得sql语句得到的数据,放在ps“这两装载车上”
        if(parms!=null){
            for(int i=0;i<parms.length;i++){
                ps.setObject(i+1, parms[i]); //把ps"车上的数数据"分给parms这个数组中
            }
        }
        ret=ps.executeUpdate();//分好了返回1,否则返回0
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return ret;
}

//重载,

public int executeUpdate(String sql ,Object parms){
    return executeUpdate(sql,new Object[]{parms});
}
//List 存放,带占位符
public int executeUpdate( String sql,List<Object> parms){
    int ret=0;
    conn=this.getConnection();
    try {
        ps=conn.prepareStatement(sql);
        if(parms!=null){
            for(int i=0;i<parms.size();i++){
                ps.setObject(i+1, parms.get(i));
            }
        }
        ret=ps.executeUpdate();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return ret;
}

/**
 * jdbc查询,带占位符
 * @param sql
 * @param parms
 * @return rs
 */
public ResultSet executeQuery(String sql ,Object[] parms){
    conn=this.getConnection();
    try {
        ps=conn.prepareStatement(sql);
        if(parms!=null){
            for(int i=0;i<parms.length;i++){
                ps.setObject(i+1, parms[i]);
            }
        }
        rs=ps.executeQuery();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return rs;
}

//方法重载

public ResultSet executeQuery(String sql,Object parms){
    return executeQuery(sql,new Object[]{parms});
}
public ResultSet executeQuery(String sql,List parms){
    return executeQuery(sql,parms.toArray());
}

public ResultSet executeQuery(String sql){
    return executeQuery(sql,new Object[]{});
}

public void close(){
    try {
        conn.close();
        ps.close();
        rs.close();

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值