jdbc规范示例与DButil的编写

news/2024/11/7 2:47:01/

这里主要是回顾一下jdbc的写法,我们后面基本都用orm框架和spring全面接管了,不会使用jdbc开发,但是jdbc是基础也是重点,于是写这篇来回顾一下。

package com.mashibing;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;//如果需要建议连接,java中提供了一套标准,数据库厂商来进行实现,包含实现子类,实子类的jar文件再哪?
//一般情况下存放在安装目录下
public class JDBCTest {public static void main(String[] args) throws Exception {//1、加载驱动:/** 当执行了当前代码之后,会返回一个Class对象,在此对象的创建过程中,会调用具体类的静态代码块* */  Class.forName("oracle.jdbc.driver.OracleDriver");  //2、建立连接//第一步中已经将driver对象注册到了drivermanager中,所以此时可以直接通过DriverManager来获取数据库的连接/** 需要输入连接数据库的参数* url:数据库的地址* username:用户名* password:密码** */Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");//3、测试连接是否成功System.out.println(connection);//4、定义sql语句//只要填写正常执行的sql语句即可String sql = "select * from emp";//5、准备静态处理块对象,将sql语句放置到静态处理块中,理解为sql语句放置对象/** 在执行sql语句的过程中,需要一个对象来存放sql语句,将对象进行执行的时候调用的是数据库的服务,数据库会从当前对象中* 拿到对应的sql语句进行执行***/Statement statement = connection.createStatement();//6、执行sql语句,返回值对象是结果集合/** 将结果放到resultset中,是返回结果的一个集合* 需要经过循环迭代才能获取到其中的每一条记录** statement在执行的时候可以选择三种方式:* 1、execute:任何SQL语句都可以执行* 2、executeQueryL只能执行查询语句* 3、executeUpdate,只能执行语句* */ResultSet resultSet = statement.executeQuery(sql);//7、循环处理//使用while循环,有两种获取具体值的方式,第一种通过下表索引编号来获取,从1开始,//第二种是通过列名来获取,哪种好?推荐使用列名,列明一般不会发生修改while(resultSet.next()){int anInt = resultSet.getInt(1);System.out.println(anInt);String ename = resultSet.getString("ename");System.out.println(ename);System.out.println("-----------------");}//8、关闭连接statement.close();connection.close();}
}

package com.mashibing.util;import java.sql.*;
/**因为连接数据库有很多重复的代码操作,我们可以对其进行封装*/
public class DBUtil { public static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";public static final String USERNAME = "scott";public static final String PASSWORD = "tiger";static {try {//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取数据库连接* @return 返回连接对象*/public static Connection getConnection(){try {return DriverManager.getConnection(URL,USERNAME,PASSWORD);} catch (SQLException e) {e.printStackTrace();}return null;//抛异常的情况下}/** 关闭数据库连接* */public static void closeConnection(Connection connection){if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}} public static void closeConnection(Connection connection, Statement statement){if (statement!=null){try { statement.close();} catch (SQLException e) {e.printStackTrace();}}if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}public static void closeConnection(Connection connection, Statement statement, ResultSet resultSet){if (resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement!=null){try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}


http://www.ppmy.cn/news/706819.html

相关文章

BUUCTF [GXYCTF2019] CheckIn 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 密文&#xff1a; dikqTCpfRjA8fUBIMD5GNDkwMjNARkUwI0BFTg解题思路&#xff1a; 1、观察密文&#xff0c;一眼Base64加密&#xff0c;使用在线工具Base64加解密&#xff0c;得到另一串密文。 v)*L*_F0<}H0>…

minipcie转nvme,msata转ngff sata

现如今的电脑主板&#xff0c;m.2/ngff接口相当普遍。具有minipcie接口的主板大概只有工控主板和老款的主板的了。并不代表minipcie就会别淘汰了。 对于消费用户&#xff0c;minipcie接口就是装个无线网卡。但在某些情况下&#xff0c;并不需要这无线网卡功能&#xff0c;这一接…

剑指 offer 36. 二叉搜索树与双向链表

描述 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示 数据范围&#xff1a;输入二叉树的节点数 0≤n≤1000&#xff0c;二叉树中每个节点的值 0≤val≤1000&#xff0c;要求&#xff1a;空间复杂度 O(1)&#xff08;即在原树上操作&…

2023夏-杂牌ngff的sata固态使用primocache的性能提升

测试的固态是作为系统盘并且写入三分之二的杂牌sata协议固态&#xff0c;性能偏低但还可以用的程度 用了增强的软件是 PrimoCache4.2 之前的跑分是360&#xff0c;很低了但还能正常使用&#xff0c;4k的读取速度很低 安装并配置内存500m的读写缓存后 聊胜于无吧&#xff0c;多多…

ModaHub魔搭社区:Milvus 数据迁移工具 – MilvusDM

目录 Milvus 数据迁移工具 — MilvusDM 简介 功能介绍 Faiss to Milvus Milvus 数据迁移工具 — MilvusDM 简介 MilvusDM 是一款针对 Milvus 研发的数据迁移工具&#xff0c;支持 Milvus 数据传输以及数据文件的导入与导出&#xff1a; Faiss to Milvus&#xff1a;将未…

MySQL意向锁(Intent Lock)

当我们想要获取某个数据表的排它锁的时候&#xff0c;需要先看下这张数据表有没有上了排它锁。如果这个数据表中的某个数据行被上了行锁&#xff0c;我们就无法获取排它锁。这时需要对数据表中的行逐一排查&#xff0c;检查是否有行锁&#xff0c;如果没有&#xff0c;才可以获…

华为mate40营销之我见

华为mate40营销之我见 产品策略 华为深厚的创新研发实力也为华为手机产品提供了保障&#xff0c;不仅拥有多项专利&#xff0c;还成功自主研发芯片&#xff0c;2016全球企业研发投入排行榜中华为排名世界第八、中国第一。华为智能手机主要采取差异化策略&#xff0c;针对不同…

华为P40博客营销

华为创立于1987年&#xff0c;是全球领先的ICT&#xff08;信息与通信&#xff09;基础设施和智能终端提供商&#xff0c;我们致力于把数字世界带入每个人、每个家庭、每个组织&#xff0c;构建万物互联的智能世界&#xff1a;让无处不在的联接&#xff0c;成为人人平等的权利&…