java之连接数据库之JDBC访问数据库的基本操作

本文详细介绍了基于JavaEE的web应用中使用JDBC连接数据库的步骤,包括加载驱动、注册驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL语句、访问结果集以及关闭资源等。还阐述了PreparedStatement的优势,以及JDBC API的功能和相关类与接口的作用。

https://www.cnblogs.com/lizanqirxx/p/6123124.html

1.将数据库的JDBC驱动加载到classpath中,在基于JavaEE的web应用实际开发过程中通常要把目标数据库产品的JDBC驱动复制到WEB—INF/lib下。

 

2.加载JDBC驱动并将其注册到DriverManager中。

Oracle数据库

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

mysql数据库

Class.forName("com.mysql.cj.jdbc.Driverr");

 

 

3.建立数据库连接,取得Connection对象。

   mysql   数据库

   String url="jdbc:mysql://localhost:3306/databaseName"+"?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL"
   String user="root";
   String password="123";  
   Connection conn=DriverManager.getConnection(url,user,password);

 

 

 

4.建立Statement对象 或PerparedStatement对象

Statement statement=conn.createStatement();

PreparedStatement pstatement=conn.prepareStatement(所要执行的sql语句);

pstatement.setString(第一个占位符, 占位符的内容);
pstatement.setString(第二个占位符, 占位符的内容);

利用PreparedStatement可以避免数据库的注入攻击!

 

 

 

5.执行SQL语句

String Sql="select * from 表名";

ResultSet rs=statement.executeQuery(Sql);或者ResultSet rs=pstatement.executeQuery();

执行查询语句是用executeQuery();

但是在执行“插入”,“更新”“删除”语句时就需要用executeUpdate();方法了(dml)

 

 

6.访问结果记录集ResultSet对象

一般用while循环

while(rs.next()){

依次读取结果。

}

 

 

 

7.依次将ResultSet对象,Statement对象或PerparedStatement对象Connection对象关闭释放所占用的资源

rs.close();

statement.close();或者pstatement.close();

conn.close();

 

 

8.总结

PreparedStatement:

1.提高了安全性可以防止注入攻击

2.提高了数据库语句的执行性能。

3.提高了代码的可读性和可维护性。

 

其中PreparedStatement接口继承自Statement接口

 

JDBC   API做了哪三件事:

1.与数据库建立连接。

2.执行数据库的语句。

3.处理结果。

DriverManager类:依据数据库的不同,管理JDBC驱动。

Connection接口:负责连接数据库并担任传送数据的任务。

statement接口:由Connection对象创建,负责执行数据库语句。

ResultSet 接口:负责保存Statement对象执行后所产生的查询结果。

除了executeQuery方法和executeUpdate方法之外还有execute方法可以执行可以执行所有的语句,当获得true时表示返回了一个ResultSet结果集。

方法:

next() :将光标从当前位置向下移动一行。

previous():游标从当前位置向上移动一行。

void close():关闭当前对象。

int getInt(int colIndex)获取指定列号的当前行。

int getInt(String colIndex)获取指定列名的当前行。

String getString(String colLabel)获取结果集当前行指定列名值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值