一,什么是JDBCJDBC(Java DataBase Connectivity)
JAVA提供了专门用于操作数据库的API,即JDBC。JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用的程序一但和数据库建立连接,就可以使用JDBC提供的API操作数据库。或者可以简单的理解为:JDBC是用Java语言向数据库发送SQL语句。
二、Java连接数据库的maven依赖(以MySQL为例)
三、Java连接数据库的步骤
1、加载驱动
Class.forName(“com.mysql.jdbc.Driver”);
2、建立连接
通过Connection建立连接,Connection是一个接口类,其功能是与数据库进行连接
conn=DriverManager.getConnection(url, user, password);
url:JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值&…
例如:jdbc:mysql://127.0.0.1:3306/数据库名”,”用户名”,”密码”
3、创建执行对象并发送SQL指令
Statement对象用于将 SQL 语句发送到数据库中,或者理解为执行sql语句
PreparedStatement pstmt=conn.prepareStatement(sql);
Statement:用于执行不带参数的简单SQL语句;
PreparedStatement(从 Statement 继承):用于执行带或不带参数的预编译SQL语句;
CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用
联系与区别:
虽然PreparedStatement继承自Statement,都是接口,但是
PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高
4、处理ResultSet结果
ResultSet对象是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。
ResultSet里的数据一行一行排列,每行有多个字段,且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。
ResultSet对象自动维护指向当前数据行的游标。每调用一次next()方法,游标向下移动一行。
初始状态下记录指针指向第一条记录的前面,通过next()方法指向第一条记录。循环完毕后指向最后一条记录的后面。
五、释放连接
在jdbc中Connection是非常稀有的资源,使用完之后应当马上释放,甚至还要以”迟占用,早释放“的原则使用,也就是说在使用的过程中尽可能地要用的时候才创建Connection一用完应当立刻关闭释放。
finally { //conn对象是
if(null!=conn)//可以避免空指针异常
try
{//耗费资源,占有内存较大的对象,避免内存泄露,操作完成后保证关闭
conn.close();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
[
](https://blog.csdn.net/qq_43623447/article/details/106494077)