一、JDBC的概念:

问题:java和数据库之间的沟通不一致

解决:数据库厂商对外提供java支持的接口

使用:创建类实现接口(操作数据库)

数据库厂商对外提供了数据库操作的驱动包.(翻译官)

结论:JDBC其实就是数据厂商对外提供的能够对自己的数据进行操作的驱动包也就是jar文件.

JDBC的使用:

  1. jdbc完成新增
  2. jdbc完成修改
  3. jdbc完成删除
  4. jdbc的事务
  5. jdbc完成查询
  6. jdbc的MVC思想

二、JDBC查询步骤




java如何一次执行多条sql jdbc执行多条sql语句_jdbc连接oracle


1.加载数据库驱动类


java如何一次执行多条sql jdbc执行多条sql语句_jdbc连接oracle_02


1)在工程下新建lib文件夹,将 ojdbc6.jar(jar包在oracle目录下)拷贝至该目录下

2)右键ojdbc6.jar文件,build path --> add too build path

3)将驱动类加载到内存中

Class.forName("oracle.jdbc.driver.OracleDriver");

java如何一次执行多条sql jdbc执行多条sql语句_jdbc驱动jar_03


2.获取数据库连接对象

Connection conn = DriverManager.getConnection(url,user,password);

url:表示要连接的数据地址

username:数据库的用户名

password:数据库的密码

3.写sql

String sql = "xxxxxx";

4.创建PreparedStatement对象

PreparedStatement ps = conn.prepareStatement(sql);

5.执行查询返回ResultSet结果集对象

ResultSet rs = ps.executeQuery();

6.遍历结果集,获取查询结果

while(rs.next){
 rs.getXxx()
 }

7.释放资源

rs.close()
 ps.close()
 conn.close()

三、常用数据库连接方式

  • MySQL:
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver);
Connection con=DriverManager.getConnection(URL,Username,Password);
  • Oracle:
String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法
String URL="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver) ; //加载数据库驱动
Connection con=DriverManager.getConnection(URL,Username,Password); //常用数据库链接方式
  • DB2:
String Driver="com.ibm.dbjdbc.app.DBDriver"; //连接具有DB2客户端的Provider实例
//String Driver="com.ibm.dbjdbc.net.DBDriver"; //连接不具有DB2客户端的Provider实例
String URL="jdbc:db2://localhost:5000/db_name"; //db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver) ;

四、preparedstatement和statement的区别

PreparedStatement接口继承Statement,并与之在两方面有所不同:

PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。

由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。

五、封装代码块


java如何一次执行多条sql jdbc执行多条sql语句_jdbc驱动jar文件放哪_04


封装后:


java如何一次执行多条sql jdbc执行多条sql语句_java如何一次执行多条sql_05


java如何一次执行多条sql jdbc执行多条sql语句_jdbc驱动jar文件放哪_06


注:由于url 的地址可变,为了避免更改代码,可以使用配置文件,可将其放入新建的文件db.properties中,就可实现数据库的自由切换。


java如何一次执行多条sql jdbc执行多条sql语句_jdbc连接oracle_07


java如何一次执行多条sql jdbc执行多条sql语句_jdbc连接oracle_08