废话少说,看了尚学堂的视频以及某大神的博客,总结出以下.(本文以oracle数据库为例)
创建一个JDBC连接数据库的程序,需要着手做以下几件事情:
注意,这里边使用了java.sql.Statement; java.sql.connection;等包,为了方便这里直接使用了java.sql.*;
一.jdbc怎么识别不同数据库呢,例如oracle.mysql.等,
找到相应数据库的jdbc的类库,不同的数据库针对jdbc做出了不同的类库.找到类库以后需要找到一个driver的驱动,这个驱动就是提供jdbc来连接数据库的,那么这个驱动在哪呢?
没错,类库就是一个jar包.项目bulid path引进jar包.
然后看到该jar包下面有一个专门做驱动的类OracleDriver.class.
在要编写的JDBC连接数据的java类中引入此类:
Class.forName("oracle.jdbc.driver.OracleDriver");
//会抛出没有找到该类的异常,注意添加异常处理
或者使用
new oracle.jdbc.driver,OracleDriver();
成功加载后,会将Driver类的实例注册到DriverManager类中。
二.连接数据库
向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。
String url = "jdbc:oracle:thin:@192.168.104.210:1521/orcl"; String dbname = "shgbyp"; String dbpwd = "dreamsoft"; Connection conn = DriverManager.getConnection(url, dbname, dbpwd);
三.创建sql语句并执行sql语句
这里使用了java.sql.statement包;
首先创建一个statement语句
Statement stmt = conn.createStatement();
然后调用Statement对象,在Statement中有一个方法是用来执行sql语句的:
String sql ="select * from a01" stmt.executeQuery(sql);
在这之后就又有问题了,只执行sql语句,那么我们也需要去的结果呀;
在来看操作手册中,关于executeQuery()方法有一个返回值类型:ResultSet(结果集类型)
ResultSet rs = stmt.executeQuery(sql);
现在好了,拿到了结果集,之后我们是不是需要循环遍历结果集从而拿到我们想要的结果呢?
同时把结果System.out.println();输出出来
while(rs.next()){ //比如我们以string类型只拿腌a01表中的personcode String result = rs.getString("personcde");
System.out.println(result); }
这样的话,以上是不是就完善了呢?
千万记住,在每次新建资源后要记得释放资源,以及所有中的异常处理最好用try/catch来处理!
//遵守先建后关的资管规则
//记住代码的严谨性,判空,因为如果为空,代表之前没有新建资源,就不存在关闭资源这一说法!
if(rs != null){
rs.close();
} if(stmt != null){ stmt.close();
}
if(conn != null){ conn.close();
}
四.执行程序
以上就ok啦,再接再厉!