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基本类都直接继承 ...
随机推荐
- Shell—三剑客(grep、sed、awk)
grep命令详解 文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行. 命令格式:grep [options] pattern filename.gr ...
- MySQL 同一Windows系统上安装多个数据库
Step 1:拷贝一份MySQL整个安装文件,并拷贝一份 my.ini 文件放置安装目录下,然后修改以下内容.注意 port 不能设置为默认的3306,这里我们设置为3307端口. basedir=C ...
- golang数据结构和算法之LinkedList链表
差不多自己看懂了,可以自己写测试了.:) LinkedList.go package LinkedList //"fmt" type Node struct { data int ...
- equals和==的应用场景
今天我知道了 抽象类主要作为多个类的模板,接口则定义了多个类应该遵守的规范. "=="比"equals"运行速度快,因为"=="只是比较引用 ...
- 1、zabbix监控基础概念
目录 为什么要使用监控? 监控怎么用? 去到一家新公司,应该如何搭建监控系统? 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛 ...
- 【转】Redis相关
1. 什么是redis? Redis 是一个使用 C 语言写成的,开源的基于内存的高性能key-value数据库. Redis的值可以是由string(字符串).hash(哈希).list(列表) ...
- python27期python连接数据库:
import pymysql创建connectinon对象:con = pymysql.connect(host = "localhost",user = "root&q ...
- CF1204D Kirk and a Binary String
题目链接 problem 给出一个长度为\(n(n\le 10^5)\)的只包含01的字符串.把尽可能多的1变为0,使得对于所有的\(l \in [1,n],r\in [l,n]\),区间\([l,r ...
- 【shell脚本】检测当前用户是否为超级管理员===checkRoot.sh
检测当前用户是否为超级管理员,是则使用yum安装vsftpd,不是则输出提示信息 脚本赋予执行权限 [root@VM_0_10_centos shellScript]# chmod a+x check ...
- 行为驱动:Cucumber + Java - 实现数据的参数化
1.什么是参数化 实际设计测试用例过程中,我们经常会用等价类.边界值这样的方法,针对一个功能进行测试数据上的测试,比如一个输入框,正向数据.逆向数据,非法输入等等 2.Cucumber的数据驱动 同上 ...