jdbc preparestatement 执行多条语句_JDBC

一、JDBC的概念:

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

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

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

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

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

JDBC的使用:

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

二、JDBC查询步骤

d39a6f2b6a14ee8113ea66fb2ebc9d80.png

1.加载数据库驱动类

7d13a4d2b4ce747c39e8d7c061ce5cf7.png

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

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

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

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

9cc4320a622ffc6e8f53c19b8f7e5472.png

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 对象。

五、封装代码块

8fcbf967a20c81c81d4987587ac5cda1.png

封装后:

ece9242f6d4f057efe10cd33e35bc642.png

870066c19d439504c38a80244d7b3117.png

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

b688c82c1459a8d1e162cb356148826e.png

cf6d57be0f722cadeb10b553036189ad.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值