掌握数据库开发是java工程师的基本要求,而JDBC是数据库开发的基础,通过JDBC可以实现Java程序对后端数据库的访问。
虽然现在大多使用MyBatis,但明白JDBC的工作流程,对初学者来说还是非常必要的,学会之后能够更快速的上手MyBatis。下面我就介绍一下JDBC的基础知识。注意:学习JDBC需要有Java基础以及数据库基础。
总的来说,使用JDBC的流程大概分为:
1. 装载驱动程序
2. 建立与数据库的连接
3. 执行SQL语句
4. 获取执行结果
5. 清理资源
接下来逐步详细说明:
1.装载驱动程序
说到装载驱动程序,就不得不说JDBC中的Driver类、DriverManager类。Driver类是一个接口,定义了各个驱动程序都必须实现的功能,是驱动程序的抽象。而DriverManager类是Driver类的管理类。
想要装载驱动程序,我们就要用Class.forName(DriverName)向DriverManager注册驱动程序。DriverName就是响应数据库驱动的名称。推荐用maven管理驱动程序,免去到官网下载的麻烦。例如加载mysql驱动:
Class.forName(“com.mysql.jdbc.Driver");
2.建立与数据库的连接
想要建立与数据库的连接,就要通过DriverManager类中的getConnection()方法调用驱动程序。
getConnection()方法返回的是一个JDBC Connection对象。Connection对象其实代表的是Java应用程序对后端数据库的一条物理链接。基于这条链接,我们可以执行SQL语句。Connection对象常用的方法就是createStatement()方法,这个方法用来创建Statement对象。
调用getConnection()方法需要传入三个参数,分别是URL、UserName、PassWord。注意:使用getConnection()可能会抛出异常,所以这里要捕获异常。
例如:
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名","root","root");
URL为相应数据库的地址,包含协议、子协议、子名称三部分,其中自名称又包括主机、端口、数据库名等。例如:“jdbc:mysql://127.0.0.1:3306/数据库名”。
UserName则是你部署相应数据库时设置的用户名,一般都是“root”。
PassWord就是你部署相应数据库时设置的密码。
3.执行SQL语句
要执行SQL语句,首先要用Connection连接创建Statement对象。Statement对象,说到底就是一个SQL容器,这个容器可以承载一些SQL语句。
然后调用executeQuery()方法或execute()方法执行SQL语句。其中,executeQuery()方法可执行查询操作,execute()方法更新、添加、删除等操作。执行后返回int值或ResultSet对象。ResultSet是数据库结果集的数据表。
例如:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select name from user");
4.获取执行结果
若返回的是ResultSet对象,则要用循环取出ResultSet对象中的数据。因为ResultSet对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next方法可以将指针移动到下一行;使用该方法是会true或false(若没有下一行则返回false),所以可以在while循环中使用它迭代结果集。(ResultSet对象的其他常用方法自行搜索其他资料,这里就不赘述了。)
例如:
while(rs.next()){
System.out.println(rs.getString("name"));
}
5.清理资源
在finally{ }方法中清理资源。
例如:
finally{
try{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException){
//ignore
}
}
作者:lingyv
链接:https://www.jianshu.com/p/ffb81620a7b4
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。