JDBC基础

JDBC是我们使用JAVA程序操作数据库的工具.

Java Data BaseConnectivity java数据库连接

是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成

我们想用Java程序操作数据库, 就需要使用数据库的驱动.

由于每种数据库存储数据的方式不同, 他们所提供的数据库驱动也就不同.

如果我们学习所有数据库的驱动, 那么学习成本是很高的.

JDBC就是一套数据库驱动的规范, 由多个接口组成.

JDBC由java.sql和javax.sql两个包组成, 在jdk5.0之后包含在JavaSE中, 不需要导入.

除了这两个包之外, 我们还需要导入数据库对应的驱动.

注册驱动:

DriverManager.registerDriver(newcom.mysql.jdbc.Driver());

可以加载MySQL的驱动, 但我们不推荐这么做.

参考com.mysql.jdbc.Driver的源代码我们可以看到, 这个类的静态代码块中已经将自己注册到DriverManager了.如果我们在程序中再次注册, 相当于注册了两次.

获取连接地址:

DriverManager通过已注册的驱动获取Connection, 这个Connection是java.sql.Connection的实现类. 具体返回的是哪个类, 由驱动决定. 也就是说, 我们注册的是MySQL的驱动, 返回的就是MySQL的Connection. 查看源码.

释放资源:

在程序运行结束以后, 和数据库相关的资源不会被自动释放掉, 我们需要手动释放ResultSet, Statement, Connection尤其Connection是非常宝贵的资源, 使用结束之后应该尽早释放.

为了确保释放资源的代码一定会执行到, 我们通常将它们放在finally中

大文本和二进制:

存储文件:PreparedStatement ps = conn.prepareStatement("insert into clob(file) values(?)");

File file = new File("src/cn/itcast/jdbc1/clob_blob/ClobDemo.java");

Reader reader = new FileReader(file);

ps.setCharacterStream(1, reader,(int) file.length());

ps.executeUpdate()也可以使用ps.setString()直接设置, 但如果字符串太大, 有可能超出虚拟机内存

读取文本:PreparedStatement ps = conn.prepareStatement("select file from clob");

ResultSet rs =ps.executeQuery();

if (rs.next()) {

Reader reader = rs.getCharacterStream(intcolumnIndex);

// 这个Reader就是从数据库中读取数据的流, 操作这个流来读取数据

}

BLOB用来存储大段的二进制数据, 例如图片, 音频, 视频. LONGBLOB最大4G


你可能感兴趣的:(jdbc)