JDBC(全称为java database connectivity),也就是Java数据库连接。这是一个Java连接SQL数据库的标准,包含了常用的API,让我们能方便的连接和管理SQL数据库。每个数据库厂商都会提供相应的JDBC驱动程序,实现相应的接口。这样我们就能以统一的方式,操作不同的数据库了。
JDBC有固定的七个步骤,接下来依次介绍每个步骤
首先我们要导入驱动jar包,在工程中创建lib目录,快捷键ctrl+shift+alt+s,看到如下界面,点击红色处
选择JARs and directories,在目录中找到jar包的地址并导入即可
接下来通过java.lang.Class类的静态方法forname(String ClassName)实现的加载,这个方法会抛出SQL异常,所以在使用的时候需要包裹在try-catch块中或者向上一级抛出异常。例如
Class.forName(“com.mysql.jdbc.Driver”);
例如:
Connection connection = null;
connection = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/jdbctest?useSSL=true&characterEncoding=utf-8&user=root&password=123”);
其中jdbctest是连接的数据库名,characterEncoding设置为GBK或者是UTF-8,这里设置为UTF-8,user是用户名,password是密码。
例如这里的查询语句:
String sql = “select * from jdbc”;
这里用变量sql进行保存。可以根据需要修改该语句实现数据库的增删改查。
要执行sql语句,必须获得statement实例,statement实例分为以下3中类型:
1、 执行静态sql语句时,通常通过Statement实例实现。
2、 执行动态sql语句时,通常通过PreparedStatement实例实现。
3、 执行数据库存储过程,通常通过CallableStatement实例实现。
例如:
PreparedStatement statement = null;
statement = connection.prepareStatement(sql);
Statement接口提供了三种执行sql语句的方法:executeQuery、executeUpdate和execute
1、executeQuery(String sql):执行查询数据库的sql语句,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sql):用于执行insert、update或Delete语句以及sql DDL语句。
3、execute(sql):用于执行返回多个结果集、多个更新计数或二者组合的语句。
这里使用第一种方法
ResultSet resultSet = null;
resultSet = statement.executeQuery();
这里有两种情况:
1、 执行更新返回的是本次操作影响的记录数。
2、 执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
这里执行查询返回了一个ResultSet对象,对其遍历(有三列数据的表),代码为:
while(resultSet.next()){
System.out.println(resultSet.getInt(1));
System.out.println(resultSet.getString(2));
System.out.println(resultSet.getString(3));
}
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
(注意使用try-catch结构保证对象为空时也不会使程序崩溃),代码为:
if (resultSet!=null){
try{
resultSet.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if (statement!=null){
try{
statement.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if (connection!=null){
try{
connection.close();
}catch (SQLException e){
e.printStackTrace();
}
}
至此JDBC完成。