什么是JDBC
JDBC(Java Data Base Connectivity,Java数据库链接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API。因为它是由Java语言编写而成,所以具有很好的跨平台特性,使用JDBC编写的数据库应用可以在任何支持java的平台上运行,而不必再不同平台上编写不同的应用程序。它支持SQL语言,利用JDBC可以将Java代码链接到oracle、DB2、SQLServer、MYSQL等数据库,从而实现对数据库中的数据操作的目的。
JDBC的主要功能如下:
- 建立与数据库或者其他数据源的链接
- 向数据库发送SQL命令
- 处理数据库的返回结果
JDBC中常用的类和接口:
连接到数据库(Connection)、建立操作指令(Statement)、执行查询指令(executeQuery)、获得查询结果(ResultSet)等;
JDBC编程步骤
首先添加依赖jar包 mysql-connector-java-5.1.26.jar ojdbc14-14.jar
- 加载驱动程序:Class.forName(driverClass)
加载mysql驱动:Class.forName(“com.mysql.jdbc.Driver”)
加载oracle驱动:Class.forName(“oracle.jdbc.driver.OracleDriver”) - 获得数据库链接
DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/imooc”,user,password);
DriverManager.gerConnection(URL,user,password); - 创建Statement对象:conn.createStatement();
- 向数据库发送SQL命令
- 处理数据库的返回结果(ResultSet类)
代码演示:
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class javaTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
String USER="root";
String PASSWORD="tiger";
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2.获得数据库链接
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
//3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from user");
//4.处理数据库的返回结果(使用ResultSet类)
while(rs.next()){
System.out.println(rs.getString("user_name")+" "
+rs.getString("user_password"));
}
//关闭资源
rs.close();
st.close();
conn.close();
}
}
/**
注: Mysql数据库链接Connection 和Statement、Resultset使用完毕之后一定要关闭,否则会占用大量内存资源,导致内存溢出。在不使用数据库连接池的时候,在不产生冲突的前提下,Connection对象可以使用同一个conn,在操作数据库的时候Statement对象如果只有创建但没有关闭,则程序对内存的消耗会不断增加直到内存溢出或者程序执行完毕(gc或者Driver Vendor会自动回收statement和resultset)。所以当要长时间运行数据库连接操作的时候,一个良好的习惯是Statement s以及Resultset rs使用之后一定要关闭(如果是使用连接池的时候,这样做也是很有好处的)。
*/