1. jdbc定义
java database connectivity java 与数据库的连接
2.jdbc步骤:
1.加载驱动(选择数据库)
使用oracle数据库就是获得oracle.jdbc.driver.OracleDriver这个类,然后加载.我们可以使用反射实现加载驱动的步骤.
Class.forName("oracle.jdbc.driver.OracleDriver");
2.获取连接(与数据库建立连接)
加载完驱动之后我们就需要连接这个数据库
实现连接数据库的语句:
Connection conn=DriverManager.getConnection();
getConnection()是一个重载方法,我们可以在()里面选择性的输入实参.
其中的url的写法:
jdbc:oracle:thin:@db服务器地址:端口:实例
例如:
jdbc\:oracle\:thin\:@localhost\:1521\:XE
这个连接的就是本机的oracle数据库.端口为1521.实例为xe, 为oracle的简易版本
3.准备sql语句(要执行的sql)
String sql="select * from User where name=? and pwd=?";
注意sql语句中不要添加;号,因为sql语句是不要;号的
我们这里选择的处理快为预处理块,这样的好处为可以防止sql注入,并且可以预先编译,提高效率.
其中的?为占位符
4.准备处理块(发送和执行sql语句)
准备处理块的语句为: PreparedStatement state=conn.prepareStatement(sql); 使用预处理块我们还要在准备处理块之后为sql语句中的占位符?赋值
例如:
state.setObject(1, name);
state.setObject(2, pwd);
第一个参数代表第几个占位符,第二个参数代表要代替占位符的数据.占位符的起始位置为1.
等下我们可以利用state调用方法执行sql语句.
5.发送sql语句(发送执行sql)
发送查询语句的语句为:
ResultSet result=state.executeQuery();
发送增删改语句的语句为:
state.executeUpdate();
因为使用的是预处理块,所以在方法中可以不添加参数.
6.获取结果集(执行sql的结果)
获得结果集是查找操作独有的,因为有返回值,所以需要使用结果集接一下.
ResultSet result=state.executeQuery();
获得结果集后,我们就可以返回的数据进行处理分许.
7.关闭资源
在执行完上述步骤后,需要关闭开启的资源.
注意先打开的后关闭
执行语句为: result.close(); state.close(); conn.close();
3.注意
我们可以把驱动地址,url,等DriverManager.getConnection()方法中的参数写在配置文件中,这样我们在修改时就不要修改源码,直接到配置文件中修改即可.
并且我们还可以把加载驱动,配置文件的连接,以及获取连接的方法封装到一个类中,这个我们在使用时就不需要多次书写,只需调用封装的即可.