JDBC及C3P0常用类
JDBC(Java Database Connectivity)JAVA数据库连接,它是一套用于执行SQL语句的Java API。JDBC可以通过不同驱动与不同数据库连接,相当于JAVA和数据库之间的桥梁。
JDBC常用API:
DriverManager类用于加载JDBC驱动并且创建于数据库的连接:
registerDriver(Drive driver) 向DriverManager中注册给定的JDBC驱动。
getConnection(String url, String user, String pwd) 建立与数据库的连接,并且返回Connection对象。
Connection接口代表JAVA与数据库的连接,只有获得该连接对象后才能访问数据库:
getMetaData() 返回表示数据库元数据的DatabaseMetaData对象。
createStatement() 创建一个Statement对象并将SQL语句发送到数据库。
prepareStatement(String sql) 创建一个PreparedStatement对象并将参数化的SQL语句发往数据库。
prepareCall(String sql) 创建一个CallabelStatement对象来调用数据库的存储过程。
Statement接口用于执行静态的SQL语句,并且返回一个结果对象,该接口的对象通过Connection实例的createStatement() 方法获得。可以利用该对象执行静态SQL语句:
execute(String sql) 执行各种SQL语句,并且返回一个布尔类型的值,如果为true代表所执行的SQL语句有查询结果,可以通过Statement的getResultSet()方法获得查询结果。
executeUpdate(String sql) 用于执行SQL语句中的INSERT, UPDATE和DELETE语句,返回一个int型的值来表示数据库表中受影响的行数。
excuteQuery(String sql) 执行SQL语句中的SELECT语句,该方法返回一个表示查询结果的ResultSet对象。
PreparedStatement是Statement的子接口,用于执行预编译的SQL语句, SQL语句中可以用"?"代替参数,然后可以通过setXxx()方法为SQL语句的参数赋值:
executeUpdate() 在此PreparedStatement对象中执行SQL语句,该语句必须是一个DML语句或者是无返回内容的SQL语句。
executeQuery() 在此PreparedStatement对象中执行SQL查询,该方法返回的是ResultSet对象。
SetInt(int parameterIndex, int x) 将指定的参数设置为给定int值,float String,Date 类型的同理。
addBatch() 将一组参数添加到此PreparedStatement对象的批处理命令中。
SetCharacterStream(int parameterIndex , java.io.Reader reader, int length) 将指定的输入流写入数据库的文本字段。
ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中,该接口内部有一个指向表格数据行的游标,初始化时,游标在表格的第一行之前:
getString(int columnIndex) 用于获得指定字段的String类型的值, 参数columnIndex代表字段的索引。int为 getInt(int columnIndex), Date同理。
getString(String columnName) 用于获得指定字段的String类型的值, 参数columnName代表字段的名称。int为getInt(int columnName), Date同理。
next() 将游标位置下移一行。
absolute(int row) 将游标移动到指定行。
beforeFisrt() 将游标移动到第一行之前。
previous() 将游标上移一行。
last() 将游标移动到最后一行。
数据库连接池:JDBC每次创建和断开Connection对象都会消耗一定的时间和IO资源,为了避免频繁地创建数据库连接,出现了数据库连接池技术,数据库连接池是在初始化时创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时不时直接创建Connection对象,而是向连接池申请一个Connection,使用完毕后连接池会将此Connection回收,并交付其他线程使用,提高数据库的访问效率。
C3P0数据源常用方法:
void setDriverClass() 设置连接数据库的驱动名称。
void setJdbcUrl() 设置连接数据库的路径。
void setUser() 设置数据库登录账号。
void setPassword() 设置数据库的登录密码。
void setMaxPoolSize() 设置数据库连接池最大的连接数目。
void setMinPoolSize() 设置数据库连接池最小的连接数目。
void setInitialPoolSize() 设置数据库连接池初始化的连接数目。
Connection getConnection() 从数据库连接池中获取一个连接。
ComboPooledDataSource() ComboPooledDataSource(String configName) 为创建C3P0数据源的构造方法。
JDBC及C3P0常用类的更多相关文章
- DbUtils是Apache出品一款简化JDBC开发的工具类
DbUtils - DbUtils是Apache出品一款简化JDBC开发的工具类 - 使用DbUtils可以让我们JDBC的开发更加简单 - DbUtils的使用: ...
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...
- Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver
========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- Java集合常用类特点整理
集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- iOS 杂笔-24(常用类到NSObject的继承列表)
iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...
随机推荐
- Linux MySQL 开启远程访问
进入mysql以后 use mysql; GRANT ALL ON *.* TO user@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
- CentOS7 安装Jenkins
准备工作 首选需要安装JAVA环境 https://www.cnblogs.com/stulzq/p/9286878.html 如果你的系统没有自带git,那么也需要安装一个 yum install ...
- STL关联容器的基本操作
关联容器 map,set map map是一种关联式容器包含 键/值 key/value 相当于python中的字典不允许有重复的keymap 无重复,有序 Map是STL的一个关联容器,它提供一对一 ...
- c# 第26节 Main方法
本节内容: 1:Main方法 2:Main方法的定义 3:测试Main函数传入参数 4:Main的大总结 1:Main方法是什么 2:Main方法的定义 3:测试打印出外部传入Main的参数 clas ...
- win10,anconda, python3.6安装dlib19.17
目的和经验: 几个月前在笔记本上安过一次,按着教程用cmake编译其实也蛮简单的,不过当初忘了收藏了.现在换了台机子需要重新安装一遍,奈何之前的帖子找不到了. pypi 网站上有19.8.whl,如果 ...
- 《anchor-based v.s. anchor-free》
作者:青青子衿链接:https://www.zhihu.com/question/356551927/answer/926659692来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Java进阶的道路,怎么成为大牛?
已然励志在java路上走的更远,那就有必要了解java的途径.先看图 image.png 愈加细化的细节如下 一: 编程基础 不管是C仍是C++,不管是Java仍是PHP,想成为一名合格的程序员,根 ...
- postgres 计算时差
计算时间差秒数 select extract(epoch FROM (now() - (now()-interval '1 day') ));
- Dockerfile命令整理
通过Dockerfile只做Docker镜像时,需要用到Dockerfile的命令,收集整理如下,以便后续翻阅参考. FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么 ...
- 物联网架构成长之路(39)-Bladex开发框架环境搭建
0.前言 上一篇博客已经介绍了,阶段性小结.目前第一版的物联网平台已经趋于完成.框架基本不变了,剩下就是调整一些UI,还有配合硬件和市场那边,看看怎么推广这个平台.能不能挣点外快.第一版系统虽然简陋, ...