Java Web学习——IDEA中使用jdbc
1.什么是JDBC
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。配置JDBC
1.在官网下载mysql的驱动,最好下载旧版本的,8点几版本的驱动可能连不上。
2.这里有两种选择导入的jar包:
-
把jar包放在Tomcat的lib目录下,这两个jar包没有什么区别。
-
或者,在
Project Structure->Modules->Dependencies->JARs or directorie
中导入jar包,并检查External Libraries中是否存在导入的jar包。
连接数据库
注册驱动
Class.forName("com.mysql.jdbc.Driver")
建立连接
Connection connection=(Connection) DriverManager.getConnection(url, username, password)
- URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库
-
`String url = "jdbc:mysql://localhost:3306/test`
username和password是连接的用户名和密码
常见的对象
Connection对象
-
客户端与数据库所有的交互都是通过Connection来完成的。
-
createStatement()
:创建向数据库发送sql的statement对象。 -
prepareStatement(sql)
:创建向数据库发送预编译sql的PrepareSatement对象。 -
prepareCall(sql)
:创建执行存储过程的callableStatement对象。 -
setAutoCommit(boolean autoCommit)
:设置事务是否自动提交。 -
commit()
:在链接上提交事务。 -
rollback()
:在此链接上回滚事务。‘’
三种Statement对象
-
Statement:
由createStatement创建,用于发送简单的SQL语句(不带参数)。 -
PreparedStatement:
继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象比Statement对象的效率更高,并且可以防止SQL注入,所以我们一般都使用PreparedStatement。 -
CallableStatement:
继承自PreparedStatement接口,由方法prepareCall创建,用于调用存储过程。
常用Statement方法:
-
execute(String sql)
:运行语句,返回是否有结果集 -
executeQuery(String sql)
:运行select语句,返回ResultSet结果集。 - e
xecuteUpdate(String sql)
:运行insert/update/delete操作,返回更新的行数。 -
addBatch(String sql)
:把多条sql语句放到一个批处理中。 -
executeBatch()
:向数据库发送一批sql语句执行,不能发送太多,会占据大量内存,这种时候可以先执行已发送的,然后清除,继续发送。
ResultSet
getString(int index)、getString(String
columnName)
:获得在数据库里是varchar、char等类型的数据对象。
-
getFloat(int index)、getFloat(String columnName)
:获得在数据库里是Float类型的数据对象。 -
getDate(int index)、getDate(String columnName)
:获得在数据库里是Date类型的数据。
getBoolean(int index)、getBoolean(String
columnName)
:获得在数据库里是Boolean类型的数据。
-
getObject(int index)、getObject(String columnName)
:获取在数据库里任意类型的数据。
ResultSet还提供了对结果集进行滚动的方法:
- next():移动到下一行
- Previous():移动到前一行
- absolute(int row):移动到指定行
- beforeFirst():移动resultSet的最前面。
- afterLast() :移动到resultSet的最后面。
使用JDBC的步骤以及释放连接
- 加载JDBC驱动程序 → 建立数据库连接Connection → 创建执行SQL的语句Statement →
处理执行结果ResultSet → 释放资源
释放资源需要按照以下顺序:
- ResultSet → Statement → Connection