JDBC连接数据库小示例

JDBC连接Oracle数据库步骤 1,数据库建立表(此处省略) 2,将数据库连接的Jar包导入项目的lib包中 3,创建编写db.properties配置文件 创建文件更改名字保存就可以了,因为我已经创建过,所以报错  将配置代码复制到创建的properties配置文件中 drivername=oracle.jdbc.driver.OracleDriver     //(驱动名,直接复制) url=jdbc:... 阅读详情

主要的实现类

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.cxp.model.QuestionInfo;
import com.cxp.util.BaseDao;

import oracle.jdbc.internal.OracleTypes;

/**
 * 试题信息DAO实现类
 * 
 * @author cxp
 * @data 2016-10-15
 * @modify
 * 
 */
public class QuestionInfoDaoImpl extends BaseDao implements QuestionInfoDao {

    /**
     * 列出所有试题信息
     */
    public void queryAll() {
        // 获得连接
        Connection conn = getConnection();
        CallableStatement cs = null;
        ResultSet rs = null;
        try {
            // 3.ps对象
            String sql = "{call proc_queryAll(?)}";
            cs = conn.prepareCall(sql);
            cs.registerOutParameter(1, OracleTypes.CURSOR);
            // 4.执行sql
            cs.execute();
            // 5.获取数据
            rs = (ResultSet) cs.getObject(1);
            boolean flag=false;//标识是否找到数据
            while (rs.next()) {
                System.out.println(rs.getInt(7) + "、" + rs.getString(1) + "\n选项A:" + rs.getString(2) + "\n选项B:"
                        + rs.getString(3) + "\n选项C:" + rs.getString(4) + "\n选项D:" + rs.getString(5) + "\n答案:"
                        + rs.getString(6) + "\n");
                flag=true;
            }
            //没找到数据
            if(flag==false)
                System.out.println("无匹配结果!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            closeAll(rs, cs, conn);
        }

    }

    /**
     * 按科目查询
     */
    public void querySubject(int subject) {
        // 获得连接
        Connection conn = getConnection();
        CallableStatement cs = null;
        ResultSet rs = null;
        try {
            // 3.ps对象
            String sql = "{call proc_querySubject(?,?)}";
            cs = conn.prepareCall(sql);
            cs.setInt(1, subject);
            cs.registerOutParameter(2, OracleTypes.CURSOR);
            // 4.执行sql
            cs.execute();
            // 5.获取数据
            rs = (ResultSet) cs.getObject(2);
            boolean flag=false;//标识是否找到数据
            while (rs.next()) {
                System.out.println(rs.getInt(7) + "、" + rs.getString(1) + "\n选项A:" + rs.getString(2) + "\n选项B:"
                        + rs.getString(3) + "\n选项C:" + rs.getString(4) + "\n选项D:" + rs.getString(5) + "\n答案:"
                        + rs.getString(6) + "\n");
                 flag=true;//有数据
            }
            //没找到数据
            if(flag==false)
                System.out.println("无匹配结果!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            closeAll(rs, cs, conn);
        }

    }

    /**
     * 按题干模糊查询
     */
    public void queryQuestion(String stem) {
        // 获得连接
        Connection conn = getConnection();
        ResultSet rs = null;
        try {
            // 3.创建st对象
            Statement st = conn.createStatement();
            // 4.执行sql语句
            StringBuffer sql = new StringBuffer(
                    "select question,optionA,optionB,optionC,optionD,answer,questionId  from question_info");
            sql.append(" where question like '%" + stem + "%'");

            rs = st.executeQuery(sql.toString());
            while (rs.next()) {
                System.out.println(rs.getInt(7) + "、" + rs.getString(1) + "\n选项A:" + rs.getString(2) + "\n选项B:"
                        + rs.getString(3) + "\n选项C:" + rs.getString(4) + "\n选项D:" + rs.getString(5) + "\n答案:"
                        + rs.getString(6) + "\n");

            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            closeAll(rs, null, conn);
        }

    }

    /**
     * 按题干模糊查询(存储过程)
     */
    public void queryQuestion1(String stem) {
        // 获得连接
        Connection conn = getConnection();
        CallableStatement cs = null;
        ResultSet rs = null;
        try {
            // 3.ps对象
            String sql = "{call proc_queryQuestion(?,?)}";
            cs = conn.prepareCall(sql);
            cs.setString(1, stem);
            cs.registerOutParameter(2, OracleTypes.CURSOR);
            // 4.执行sql
            cs.execute();
            // 5.获取数据
            rs = (ResultSet) cs.getObject(2);
            boolean flag=false;//标识是否找到数据
            while (rs.next()) {
                System.out.println(rs.getInt(7) + "、" + rs.getString(1) + "\n选项A:" + rs.getString(2) + "\n选项B:"
                        + rs.getString(3) + "\n选项C:" + rs.getString(4) + "\n选项D:" + rs.getString(5) + "\n答案:"
                        + rs.getString(6) + "\n");
           flag=true;
            }
            //没找到数据
            if(flag==false)
                System.out.println("无匹配结果!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            closeAll(rs, cs, conn);
        }

    }



    /**
     * 添加试题
     */
    public void add(QuestionInfo info) {
        // 1.sql语句
        String sql = "insert into  question_info values(seq_qid.nextval,?,?,?,?,?,?,?)";
        // 2.定义参数数组
        Object[] param = new Object[] { info.getQuestion(), info.getOptionA(), info.getOptionB(), info.getOptionC(), info.getOptionD(),
                info.getSubject(), info.getAnswer() };
        // 3.执行
        int count = executeUpdateSql(sql, param);
        if (count > 0) {
            System.out.println("数据添加成功!");
        } else {
            System.out.println("数据添加失败!");
        }
    }

    /**
     * 删除试题
     */
    public void del(int id) {
        // 1.sql语句
        String sql = "delete question_info  where questionId=?";
        // 2.参数数组
        Object[] param = new Object[] { id };
        // 3.执行
        int count = executeUpdateSql(sql, param);
        if (count > 0) {
            System.out.println("删除用户信息成功!");
        } else {
            System.out.println("删除用户信息失败!");
        }

    }

}

封装连接和关闭数据库的类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * JDBC连接数据库 BaseDao类主要封装连接数据库的功能
 * 
 * @author cxp
 * @data 2016-09-09
 * @modify
 * 
 */
public class BaseDao {
    /**
     * 1.获得连接对象
     * 
     * @return
     */
    public Connection getConnection() {
        Connection conn = null;

        try {
            // 加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            // 获得连接
            conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:ORCL", "cxp", "123");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return conn;
    }

    /**
     * 2.关闭连接
     * 
     * @param rs
     * @param ps
     * @param conn
     */
    public void closeAll(ResultSet rs, PreparedStatement ps, Connection conn) {
        // rs
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        // con
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

    /**
     * 添加,更新,删除
     * @param sql
     * @param param
     * @return
     */
    public int executeUpdateSql(String sql, Object... param) {
         //1.获得连接
        Connection conn=getConnection();
        //2.声明ps对象
        PreparedStatement ps=null;

        try {
            //3.从conn获得ps对象
            ps=conn.prepareStatement(sql);
            //4.设置参数
            if(param!=null){
                for (int i = 0; i < param.length; i++) {
                    ps.setObject(i+1,param[i] );
                }
            }
            //5.执行sql语句
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //6.关闭连接
            closeAll(null, ps, conn);
        }
        return 0;
    }

}
JDBC数据库连接 (Java Database Connectivity)是一种用于执行SQL语句的JavaAPI,是Java和数据库之间的桥梁。它提供了一种标准化的方式来连接不同的数据库驱动程序,并通过Java程序执行SQL操作。JDBC由一组用Java语言编写的类和接口组成,主要包括以下几个部分:驱动管理:负责加载和注册数据库驱动。Connection接口:用于代表数据库的连接,所有的数据库操作都通过这个接口完成。Statement接口:用于执行SQL语句。ResultSet接口:用于处理SQL查询的结果。 阅读详情

相关推荐

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 454

项目管理铁三角:范围、时间、成本的动态平衡与实战应用

项目管理是确保项目目标达成的系统性方法,其核心在于对关键约束条件的有效控制。项目管理的核心原理围绕范围、时间、成本这三个基本要素展开,它们相互制约、动态关联,构成了项目管理的“铁三角”模型。这一模型的技术价值在于为项目决策提供了客观、量化的分析框架,帮助管理者在资源有限的情况下进行科学权衡。其应用场景广泛,从传统的瀑布式项目到敏捷开发,都需要基于此模型进行范围管理、进度估算和成本控制。本文聚焦于项目管理的核心约束模型,深入探讨了如何通过定义清晰的范围边界、进行准确的时间估算以及实施严格的成本预算与绩效测量(

weixin_33938733的博客 419

Xilinx IP核 Block Memory Generator v8.4 的使用

本文主要介绍如何使用并初始化 Xilinx 提供的IP核 Block Memory Generator v8.4`,为了确保成功初始化,还对其进行了一个简单的仿真,更多细节请参考官方手册。

高阶近似的博客 1万+

java执行存储过程_Java代码调用存储过程和存储方法

准备一个oracle 的JDBC jar 包:ojdbc14_11g.jar首先找到你的 oracle 安装位置,例如:1.创建一个JDBC数据库连接工具类:packagecom.test.db;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQ...

weixin_39595310的博客 264

C#winform自定义绘制曲线控件实例

本文实例讲解自定义绘制曲线控件过程。 在实际项目中,需要绘制曲线,系统的提供的绘制曲线的控件有时不能满足自己的需要,需要根据项目需要定制开发曲线控件。 实例目标,实时绘制显示温湿度值曲线。

qq_30725967的博客 1735

Word2vec核心模型精讲:CBOW与Skip-gram

Word2vec是Google提出的词向量模型,通过CBOW和Skip-gram两种神经网络架构将词汇映射到低维向量空间。CBOW通过上下文预测中心词,训练速度快但高频词表现更好;Skip-gram则相反,通过中心词预测上下文,适合处理生僻词。为解决softmax计算效率问题,Word2vec引入基于哈夫曼树的Hierarchical Softmax优化技术,将复杂度从O(V)降至O(logV)。文章详细解析了两种模型的原理差异,并演示了哈夫曼树的构造过程及其在词向量训练中的关键作用,这种结合词频的优

Trisyp的博客 531

[Java]通过Jdbc调用存储过程

Template.getDataSource().getConnection(); cs = conn.prepareCall(sqlLibrary.EventLog_listEventLogByAppIdNStatus); conn.setAutoCommit(false); cs.setString(1, app_flag); cs.setString(2, status); cs.setString(3, eventMaxCount); cs.regis

jameskaron的专栏 334

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

Oracle的Import用法

1. imp 命令介绍 imp 命令可以通过输入各种参数来控制导出方式: imp keyword=value 或 keyword=(value1,value2,...,valueN) ,例如 imp scott/scott ignore=Y tables=(emp,dept) full=N 。 要想查看 imp 支持的所有参数,可以通过执行imp help=y 来查看参数的详细...

weixin_34174132的博客 797

流体仿真软件:COMSOL Multiphysics二次开发_(11).COMSOL与外部软件的数据交换

通过上述方法,您可以实现 COMSOL Multiphysics 与外部软件的数据交换,从而更好地集成和分析仿真结果。无论是从文本文件导入数据,导出数据到 MATLAB,还是通过 API 和 COMSOL Server 实现实时通信,都能满足不同场景下的需求。希望这些内容对您在流体仿真领域的开发工作有所帮助。

kkchenjj的博客 1553

手把手教你玩转服务器芯片架构--​​7.1 项目1:基于FPGA的RISC-V软核设计(Verilog实现核心指令执行单元)​

本文介绍了基于FPGA的RISC-V软核设计实践项目。项目采用Verilog实现RV32I指令集核心处理器,包含指令解码、ALU、寄存器堆等关键模块设计,并通过功能仿真验证。在Xilinx Artix-7 FPGA上完成综合与部署,资源利用率控制在5%以内。最后探讨了五级流水线优化、指令集扩展等进阶方案。该实践完整覆盖了从指令集设计、RTL实现到FPGA部署的全流程,可作为学习处理器架构与FPGA开发的典型案例。

MHD0815的博客 176

Java数据库连接(Java Database Connectivity,JDBC)

第一个jdbc程序 回到顶部 JDBC简介 Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成。 JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。 使用JDBC编写的程序能够自动地将SQL语句传送给

词语大杂烩 2541

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JDBC(Java DataBase Connectivity)数据库连接

JDBC(Java DataBase Connectivity)数据库连接 Java和数据库之间的关系: Java是面向对象的 数据库是关系型数据库 ORM映射思想:Object Relationship Mapping

嘭嘭啊啊啊的博客 334

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JDBC? Java Database Connectivity(Java语言连接数据库)

JDBC课堂笔记 1、什么是JDBC? Java DataBase Connectivity 在java语言中编写sql语句,对mysql数据库中的数据进行CRUD操作。 2、JDBC相关的类库在哪里? java.sql.*; 3、JDBC本质上是一堆什么呢? java.sql.*; 这个包下都是JDBC的接口,SUN公司制定的! JDBC是体现“接口作用”的非常经典的例子。 JDBC降低了耦合度,提高了扩展力。 对于java程序员来说,不需要关心数据库是哪个品牌。只要面向JDBC接口编程就行! JDBC整

途中的博客 1万+

Java Database Connectivity——2. 使用JDBC连接数据库

上一篇我们讲述了 JDBC ,这一篇实战一下,看看如何使用 JDBC 去连接数据库。这里我们使用 MySQL 数据库。 一、MySQL jar 包引入 上一篇我们说了,每一个数据库厂商都会有自己的一套实现,并且封装成 jar ,提供给我们使用,我们去下载一下这个 MySQL 数据库的 JDBC 实现包。 打开 maven 仓库https://mvnrepository.com/ 然后输入 mysql 选择这个 然后看这个版本,有 8.0x的,有 6.0x的,还有 5.1x 等等,..

胖子胖子大胖子的博客 1414

JDBC(java Database Connectivity)数据库连接(客户端如何访问数据库):

JDBC(java Database Connectivity)数据库连接(客户端如何访问数据库): 主流架构(两种架构): 1、BS架构(Browser and server)浏览器服务器架构-------》web、javaweb、phpweb 2、CS架构(Client and server)客户端服务器架构---------》QQ、微信 主要是使用java程序对数据库的访问...

lzx2953763519的博客 661

【JDBC——连接MySQL数据库的几种代码写法——db.properties文件的使用】

【代码】【JDBC——连接MySQL数据库的几种代码写法】

相关项目可以查看https://gitee.com/fan-pl或https://github.com/fpl1116 1036

JDBC(Java DataBase Connectivity,Java 数据库连接)

JDBC(Java DataBase Connectivity,Java 数据库连接) JDBC(Java DataBase Connectivity,Java 数据库连接):sun公司为了简化和统一Java连接数据库,定义的一套规范(类,接口)。 JDBC,是用于Java编程语言和数据库之间的数据库无关连接的标准Java API。 JDBC和MySQL驱动的关系:接口(JDBC)与实现(MySQL驱动jar包)的关系 JDBC API详解 1 ...

m0_61601521的博客 686

JDBC连接MySQL数据库

JDBC连接MySQL数据库

weixin_66107760的博客 4954

JDBC连接数据库

一、基本概念 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。 JDBC其实就是一个桥梁。 二、基本结构 1、Java应用程序 2、Java JDBC API 3、数据库接口的JDBC驱动程序 4、数据库 三、Java连接数据库操作步..

yukki.的博客 4390

javaweb—JDBC连接数据库

定义:JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 #1. 连接数据库          注意要先导入mysql连接的驱动包               下面还有另以一种连接方式:利用驱动管理器类连接数

永远不会懂 1653

JDBC如何与数据库进行连接

开发工具与关键技术:MyEclipse 10,JDBC应用 作者:丁晓娟 撰写时间:2019-6-4 JDBC(Java Database Connectivity):Java数据库连接,它是与数据库进行连接的纽带(与数据库进行交互)。使用JDBC,可以在不同的数据库功能模块层次上提供统一的用户界面,可以建立与数据库的连接,发送SQL语句和处理结果。 JDBC是跨数据库平台的,我们可以在java编...

weixin_44543324的博客 2179

JDBC:java数据库连接对象

一、JDBC:即Java DataBase Connectivity的缩写。全称为Java数据库连接对象,是java程序和数据库的连接桥梁。 作用:可以为多种关系型数据库DBMS提供统一的访问方式,用Java来操作数据库。 1. JDBC API主要功能:主要干三件事,具体通过以下类/接口实现: DriverManager:管理jdbc驱动 Connection:连接 Sta...

Problem_Girl的博客 5466
上一篇: 学习编程的网站
下一篇: jsp小记
github_32658299
博客等级 码龄11年 21粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值