这里从JDBC所使用的相关类简单介绍JDBC的使用:
JDBC中使用的类有 Driver--->DriverManager--->Connection---->Statement---->PreparedStatement------>callableStatement------>ResultSet---->DatebaseMetament ---->ResultSetMatedata----Types
1.注册Driver的方法有多种,主要有:
a. Class.forName("驱动名");
b. DriverManager.registerDriver(new Driver("驱动名"));
c. 编译时在虚拟机种加载驱动
java –D jdbc.drivers = oracle.jdbc.driver.OracleDriver xxx.java ;
常用驱动名参考:
MySQL的Driver的全名:com.mysql.jdbc.Driver
SQLServer的Driver的全名:com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle的Driver的全名:oracle.jdbc.driver.OracleDriver
2.DriverManager类的工作原理:
采用的是排除法管理注册的程序,先到先得的原则,所以,当DriverManager中有同时注册过多个不同版本的同种数据库的Driver时,则采
用的驱动可能与我们想要采用的驱动有偏差.
3.Connection
Connection中的URL的格式为:协议+IP:端口+资源名;
如oracle 的写法是: jdbc:oracle:thin:@127.0.0.1:1251:xe
mysql的写法是: jdbc:mysql://127.0.0.1:3306/test
4.Statement 、PreparedStatement、callableStatement
对于Statement主要关注与他的execute方法,分别是executeQuery(),executeUpdate()和execute();
其中executeQuery只用来查询,executeUpdate()是用来做更细操作的,而execute()则是既可以用来执行查询语句,也可以用来执行
更新语句.当执行的是查询语句是则可以用sta.getResultSet()来获得它的返回结果集,而如果它执行的是更新语句则可以用
sta.getUpdateCount()返回执行结果影响到的记录数;
PreparedStatement 是可以进行预编译的;在执行大批量sql时可以用此,另外他也可以减少类型不同而导致的错误;
callableStatement 可以调用执行存储过程;
用conn.preparedCall()方法创建callableStatement
5.ResultSet、DataBaseMetadata、ResultSetMetadata
ResultSetMetadata是用来描述ResultSet的,而DatdBaseMetadata则是用来描述Connection的;
6.Types 是用来映射jdbc与数据类型的;