JDBC使用技术及事例

04Oracle_05JDBC 176.137.6.30/64 6.45 1521 xe 测试成功就连接 连接池的名字: dbcp: C3PO VARCHAR是通用的,其他db软件也支持,包括oracle,但是在oracle中是用VARCHAR2 ———————————————————————————————————————————————————— DDL:( 阅读详情

jdbc----->java data base connectivity(数据库连接)

--通过接口来取得连接驱动,api(java.sql;javax.sql)mysql-driver:(MySql-connector-java-version-bin.jar)

简单事例:

create database test Character set utf8collate utf8_general_ci;

use test

create table user

(

id int primary Key,

name varchar(20),

password varchar(20),

email varchar(20),

birthday Date

);

insert into user(id,name,password,email,birthday) values(1,'a','a1','a@sina.com','1900-1-1');

junitTest---->

public class junitTest{

public static void main(String[] args) throws Exception{

String url="jdbc:mysql://localhost:3306/test_jdbc";

String usename="root";

String password="123456";

try{

Class.forName("com.mysql.jdbc.Driver");

Connection conn=DriverManager.getConnection(url,username,password);

Statement stm=conn.createStatement();

String sql="select id,name,password,email,birthday from user";

ResultSet rs=stm.executeQuery(sql);

while(rs.next()){

int id=(Integer)rs.getObject("id");

String name=(String)rs.getObject("name");

String password=(String)rs.getObject("password");

......

}

finally{

if(rs!=null){

try{

rs.close();

}catch(Exception e){

e.printStackTrace();

}

rs=null;

}

if(stm!=null){

try{

stm.close();

}catch(Exception e){

e.printStackTrace();

}

stm=null;

}

if(conn!=null){

try{

conn.close();

}catch(Exception e){

e.printStackTrace();

}

conn=null;

}

JDBC 常用API---->

createStatement();

prepareStatement(sql);

prepareCall(sql);

setAutoCommit();

callbakc();

commit();

Statement常用方法-->

executeQuery(sql)

executeUpdate(sql)

execute();

addBatch();

executeBatch();

ResultSet使用方法-->

rs.getObject(String columnName/int index);

rs.getString(String columnName/int index);

rs.next()-->true/false;

包装JDBC---->JDBCUtils

core-code:

private static String driver=null;

private static String url=null;

private static String username=null;

private static String password=null;

InputStream is=JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");

Property pro=new Property();

pro.load(is);

driver=pro.getProperty("driver");

url=pro.getProperty("url");

username=pro.getProperty("username");

password=pro.getProperty("password");

Class.forName(driver);

public static Connection getConn() throws Exception{

return DriverManager.getConnection(url,username,password);

}

public static void releaseResources(Connection conn,Statement st,ResultSet rs){

if(rs!=null){

try{

rs.close();

}catch(Exception e){

e.printStackTrace();

}

rs=null;

}...

db.properties--->driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/jdbcUtils

username=root

password=123456

使用JDBCUtils实现CRUD例子数据库定义语言(DDL-->insert,update,delete DML(databas 操作语言)-->query)

public void testCreate() throws Exception{

Connection conn=JDBCUtils.getConn();

Statement st=conn.createStatement();

insertMethod-->

PrepareStatmen pst=conn.prepareStatement(sql);

String sql="insert into user(id,name,email) values(2,'sand','sand@qq.com')";

int rsCount=st.executeUpdate(sql);

if(rsCount>0){

System.out.println("insert success");

}else{

System.out.println("occur error");

}

deleteMethod-->

String sql="delete from user where id=2";

st.executeUpdate(sql);...

updateMehod-->

String sql="update use set name='king' where id=1";

st.executeUpdate(sql);

queryMehod-->

String sql=''select id,name,email from user";

ResutSet rs=st.executeQuery(sql);

while(rs.next()){

int id=(Integer)rs.getObject("id");....

}


Mysql 处理大数据类型--->

String path=Demo.class.getClassLoader().getResource("a.txt").getPath();
File file=new File(path);
Reader reader=new FileReader(file);//获取大文件的路径
create database bigdata_clob
user bigdata_clob
create table bigtext(
id int primary key,
resume text
);
public class TestClob{
Connection conn=null;
PreparedStatement pstm=null;
ResultSet rs=null;
public void testAdd(){
conn=JDBCUtils.getConnection();
String sql="insert into bigtext(resume) values(?)";
pstm=conn.preparedStatement(sql);
String path=TestClob.class.getClassLoader().getResource("textClob.txt").getPath();
File f=new File(path);
pstm.setCharacterStream(1,new FileReader(f),f.length());
int num=pstm.executeUpdate();
if(num>0){
System.out.println("add ok");
}
}

public void testRead(){
conn=JDBCUtils.getConnection();
String sql="select resume from bigText where id=?";
pstm=conn.preparedStatement(sql);
pstm.setInt(1,1);
rs=pstm.executeQuery();
if(rs.next()){

Reader reader=rs.setCharacterStream("resume");
char[] buffer=new char[1024];
int len=0;
FileWriter fw=new FileWriter("D:\\clob.txt");
while((len=reader.read(buffer))>0){
fw.writer(buffer,0,len);
}
fw.close();
reader.close();
}
}
}
处理大的图片和文本基本一样,小差别在:pstm.setBinaryStream(1,new FileInputStream(path),new File(path).length());---->add image method;
InputStream is=rs.getBinaryStream("image");---->read image method
批处理格式:preparedstatement.addBatch(sql01);pstm.addBatch(sql02)... pstm.executeBatch();

自己实现连接池(如C3P0,DBCP...)
public class JdbcPool implements DataSource{
private static LinkedList<Connection> connList=new LinkedList<Connection>();
static{
InputStream is=JdbcPool.class.getClassLoader().getResourceAsStream("db.properties");
Properties prop=new Properties();
prop.load(is);
String driver=prop.getProperty("driver");
String url=prop.getProperty("url");
String username=prop.getProperty("username");
String password=prop.getProperty("password");
Class.forName(driver);
for(int i=0;i<10;i++){
Connection conn=DriverManager.getConnection(url,username,password);
System.out.println("getConnection--->"+i);
connList.add(conn);
}
}
}
Dynamic Proxy--->
public synchronized Connection getConnection() throws SQLException{
if(connList.size()>0){
Connection connection=connList.removeFirst();
System.out.println("the pool size --->"+connList.size());
return (Connection)Proxy.newInstance(JdbcPool.class.getClassLoader(),new Class[]{Connection.class},new InvocationHandler(){
@Override
public Object invoke(Object proxy,Method method,Object[] args){
if(!method.getName().equals("close")){
return invoke(connection,args);
}else{
connList.add(connection);
System.out.println("connection return to pool"+connection);
System.out.println("connectionList size is"+connList.size());
return null;
}
}

});
}
}
dbcp用的不多现在都用开源的封装更好的C3P0
C3P0事例---->
public class DBSource_c3p0{
private static ComboPooledDataSource cpds;
static{
cpds=new ComboPooledDataSource();
}
public static Connection getConnection(){
Connection conn= cpds.getConnection();
return conn;
}
public static releaseSource(DataSource ds,Statement st,ResultSet rs){...}
}
c3p0-config.xml--->
<c3p0-config>
<default-config>
<property name="drvier">com.mysql.jdbc.Driver</property>
</default-config>
</c3p0-config>
Vivado实战:AXI转PCIe IP核配置全流程(含性能优化技巧) 本文详细介绍了在Vivado环境中配置AXI转PCIe IP核的全流程,包括工程准备、IP核参数设置、BAR空间配置、中断系统优化以及TLP传输效率提升等关键步骤。特别分享了经过验证的性能优化技巧,帮助开发者显著提升PCIe链路的吞吐量和稳定性,适用于视频采集、高速数据记录等应用场景。 阅读详情

相关推荐

rv1126 读取sensor输入,输出到屏幕显示【RK_MPI API接口】

rv1126 libdrm VO

学习记录 1万+

JDBC基础(三)

从结果集中检索值现在展示在Java编写的程序中如何发送上面的SELECT语句,以及如何取得显示的结果。 JDBC将结果集返回给ResultSet对象,因此需要声明一个ResultSet类实例保存结果。下面代码展示了如何声明ResultSet对象rs并将前面的查询结果赋给它:ResultSet rs = stmt.executeQuery( "SELECT COF_NA

ZhangGuozhong's Blog 635

抗性基因分析避坑指南:从数据库选择到结果解读的全流程经验分享

本文系统分享了抗性基因分析从数据库选择到结果解读的全流程避坑经验。针对宏基因组研究,重点剖析了SARG、BacMet等核心数据库的适用场景与组合策略,并提供了实验设计、序列比对阈值设定、丰度归一化及结果生物学解读的关键优化建议,旨在帮助研究者获得更可靠、深入的分析结果。

weixin_29233333的博客 202

将 varchar 值转换为 JDBC 数据类型 DATE 时发生错误。

问题是: 我是这样解决的 : 网上的 转型方法 并不好使 ,我想了想 可能是由于返回值是String 我 就成功的解决错误了 。。下面是关于原理的讲解肯定方法不唯一 至于错误,的产生,这个肯能和数据库 myeclpise 之间的接口有关系 ,数据存储来回转换。这就当一个经验,有这个函数 ,以后项目有错误就这...

Hufan的专栏 1347

Windows 11 IoT企业版LTSC 24H2/25H2中文版安装指南(含OEM激活教程)

本文详细介绍了Windows 11 IoT企业版LTSC 24H2/25H2中文版的安装与OEM激活全流程。从系统镜像准备、硬件兼容性检查到自动化安装配置,再到OEM激活方案(包括SLIC注入和数字许可证激活),为工业自动化、数字标牌等物联网设备提供稳定可靠的系统部署指南。

weixin_29198045的博客 8896

基于51单片机+SYN6288语音播报

51单片机控制SYN6288语音播报资料SYN6288模块原理图语音合成命令接线如何接线实现原理程序代码main.csyn6288.cuart.cdelay.c基于 51单片机的其他项目基于51单片机+遥控灯基于51单片机+LCD1602显示基于51单片机+红外遥控解码+LCD1602显示基于51单片机+DHT11温湿度+LCD1602显示基于51单片机+DS18B20温度测温器+LCD1602显示尾声 资料 我用的是绿深电子技术的模块,资料也挺齐全的。也有相关例程。 SYN6288模块原理图 语音合成

weixin_47457689的博客 3万+

11.JDBC实例

JDBC实例1、建表语句:2、建立工程3、JDBC操作的对象(1)、Connection:数据库链接对象(2)、Statement:sql语句执行对象(3)、ResultSet:返回结果集对象(4)、PreparedStatement:预处理sql执行对象,是Statement的子接口预处理的优点:4、DAO开发模式:转注入数据访问层(1)、数据库链接工具类:Dbutils——负责链接数据库和关闭资源(2)、创建和数据库表对应的javabean对象(3)、创建接口,提供访问数据的方法(4)、创建接口的实现类

weixin_46048220的博客 1529

14、网络切片技术:原理、应用与挑战

本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。

palm99的专栏 255

Java OAF JDBC VARCHAR(2000) 字符大于2000

最近在做OAF(Oracle Application Framework)项目的时候,发现一个问题,如果一个字段大于2000,在数据库插入的时候不会有问题,如果在页面插入(大于2000但没有超过这个字段的长度),OAF页面自带的验证不会报错,但是一提交到数据库就会报字符过长的问题。一般情况下,我们普通的SQL以“select、update”开头的SQL,在提交的时候会调 PreparedS...

zhyaaccc的博客 387

火焰烟雾识别系统【数据集+源码+UI界面】

数据集准备:收集并标注火焰与烟雾数据。YOLOv10训练:训练YOLOv10模型来识别火焰和烟雾。实时检测:通过摄像头视频流进行实时检测,并显示检测结果。UI界面设计:用Tkinter设计简易界面,显示检测结果。完成以上步骤后,可以实现一个完整的火焰烟雾识别系统,具备实时检测与友好的用户界面。

2201_76125393的博客 1136

c++篇 cad.arx Win10环境配置vs2019+arx2021多版本配置+vs2022 配置图

msvc v141 v140这个两个好像是编译vs2015 vs2017版本的,必须装,然后v142装最新的,剩下的有些是默认的,还有就是mfc这些恐怕要装,然后是v140v141这两个版本的windows sdk是8.1,需要单独装一下。Windows SDK version 8.1 下载地址。windows sdk是10.0.19041.0。先安装vs2019,如图。

我的博客 782

Java的JDBC技术使用

Java的JDBC技术使用一、JDBC介绍1.什么是JDBC2.JDBC各个API接口的作用1. Driver接口:2. Connection接口3. Statement接口4. ResultSet接口二、如何使用JDBC技术1.加载驱动2.建立连接3.执行SQL4.处理执行结果(ResultSet)5.释放资源总体演示:结果 一、JDBC介绍 1.什么是JDBC JDBC(Java Data Base Connectivity, Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关

qq_45192400的博客 393

SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程-第一篇:ADT安装前置准备与环境校验教程

ABAP Development Tools(ADT)安装配置教程摘要 本文是ADT安装系列的第一篇,重点讲解环境准备与版本校验。ADT是基于Eclipse的现代ABAP开发工具,相比传统SAP GUI提供更智能的开发体验。安装前需确认: 推荐使用Eclipse 2026-03 + Java 21组合 操作系统需Windows 10+/macOS 14+ SAP GUI版本要求Windows≥8.00/macOS≥8.10 后端系统需NetWeaver 7.31 SP04+或S/4HANA 通过java -

baidu_35680696的博客 690

JDBC使用总结

万字以上的总结分享给大家,包括程序演示及使用详解,若有不妥之处,欢迎指点~ 文章所用的数据库的表在文章末尾,如果需要总结中所有jar包,以及文章的doc格式,私信我即可 如果有对MySQL不熟悉的小伙伴,可以看我的另一篇文章:MySQL使用总结,传送地址: 文章目录JDBC使用总结一、JDBC概述二、快速入门三、导入驱动jar包四、数据库连接中使用到的类和接口(1) DriverManager类(2) Connection接口(3) Statement接口(4) ResultSet接口使用JDBC工具类:J

立志成为一个前端、后端、测试全方位发展的程序员 2382

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IDEA之JDBC使用教程

IDEA之JDBC使用教程 1、下载JDBC 下载地址: JDBC驱动包百度网盘下载地址(提取码:3l6c) 2、创建项目 步骤如下: 3、导入驱动包 3.1 在目录下创建文件夹——lib,并将下载的jar包复制到lib文件夹下 3.2 选择lib文件夹,双击右键,选择 Add as Library 4 JDBC常用接口 java.sql.*:所有JDBC接口都保存在这个包下面。 Connection:数据库连接 Statement:执行sql命令; ResultSet:结果集 DriverMan

jc_hook的博客 5158

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JDBC是什么、怎么使用。

一、JDBC基础 (1)JDBC是什么? Java DataBase Connectivity(Java语言连接数据库) (2)JDBC的本质是什么? JDBC是SUN公司制定的一套接口(interface)、提供了一套接口。 (3)为什么SUN公司制定一套JDBC接口呢? 因为每一个数据库的底层实现原理不一样、Oracle数据库有自己的原理、MySQL数据库也有自己的原理、每一个数据库产品都有自己独特的实现原理。 (4) JDBC开发前的工作: 先从官网下载对应的驱动jar包,然后将.

在这个充满危险的乱世之中,只有学会烤鸡才能顽强的活下去。 3414

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JDBC的使用及案例

1. JDBC基本操作 1.1. JDBC概述 JDBC(Java Data Base Connectivity)Java连接数据库 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 它由一组用Java语言编写的类和接口组成 有了JDBC,程序员只需用JDBC API写一个程序,就可以访问所有数据库 SUN公司时规范制定者,制定了JDBC规范 DriverManager类:管理不同的JDBC驱动 Connection接口 Statement接口和PreparedStatemen

小小前端转型中 2542

JDBC技术使用

一、  在项目中导入数据库jar包 1)         在Oracle的官方网站www.oracle.com下载mysql连接数据库jar包 MySQL connectors——connector/J 2)         在新建的项目名称上点击右键选择【Build Path】选项下的【Add Libraries】选项   3)         在A

GNODIAD的优快云博客 701

JDBC 技术解析

JDBC(Java Database Connectivity)是 Java 语言操作数据库的标准 API,它提供了一套统一的接口,允许 Java 程序与各种关系型数据库(如 MySQL、Oracle、SQL Server)进行交互,实现数据的查询、插入、更新和删除等操作。JDBC 由 Sun Microsystems(现 Oracle 公司)于 1997 年推出,作为 Java 标准库的一部分。:管理数据库驱动Connection:表示与数据库的连接:执行 SQL 语句ResultSet。

Toroto5的博客 1597

JDBC技术剖析

JDBC技术剖析1.JDBC概述2.JDBC原理2.1 JDBC中主要类2.1.1 DriverManager类2.1.2 Connection2.1.3 Statement3 JDBC应用示例1、 加载驱动2.、获取连接3、获取Statement4、执行sql的增删改查语句5、关闭资源6、示例代码 1.JDBC概述 JDBC(Java DataBase Connectivity)就是Java数...

weixin_43296613的博客 1074

JDBC技术

JDBC技术 本文是基于Windows 10系统环境,学习和使用JDBC技术: Windows 10 MyEclipse 10 MySQL 5.5 一、JDBC的基本概念 (1) JDBC的定义 使用java代码(程序)去发送sql语句的技术 (2) JDBC发送sql的前提 连接mysql数据库服务器 IP地址 端口号 用户名 密码 二、JDBC的使用 (1) JDBC的连接MyS...

哈工大许政的博客 1万+

JDBC核心技术

JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis只是更好的封装了JDBC。

Azurecs的博客 627

JDBC使用教程详解

文章目录一、前言二、JDBC概述二、使用步骤1.引入库2.读入数据总结 一、前言 项目开发中,操作数据库是必不可少的,常用的操作数据库的框架,如:MyBatis、JdbcTemplate等有很多。但是,无论使用哪种框架操作数据库,最底层的api实现都是JDBC,就是说,在开发中,JDBC有着举足轻重的地位,是最基础也是最核心的。 二、JDBC概述 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import num

Dmeo_meng的博客 7885

JDBC使用

代表的字段,在程序中可以利用setXxx()方法设置该字段的内容,从而增强了程序设计的动态性。在实际项目的编写过程中,通常都是按照Model-View-Control(模型层-视图层-控制层)架构模式来组织代码,通常来说,数据访问对象DAO是属于模型层的一种对象,专门用来编写对数据库中数据的增删改查操作,而对数据库连接对象以及事务的管理,通常不会放到数据访问对象DAO中来处理,否则,如果每个DAO的方法都来创建一个Connection连接对象,就会过多的占用数据连接资源,同时也就无法进行事务控制了。

₍˄·͈༝·͈˄*₎◞ ̑̑的博客 1751
上一篇: JavaScript全局函数及自定义函数
下一篇: maven简单演示
Do_It_Possible
博客等级 码龄9年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值