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数据源的构造方法。