网站设计常见流程,wordpress添加右侧菜单,国家中小学网络云平台,手机端网页开发工具目录
一、JDBC简介
二、数据库访问
1、加载数据库驱动
2、建立数据连接
3、创建Statement对象
4、执行SQL语句
5、访问结果集
三、MetaData接口
1、DatabaseMetaData接口
2、ResultSetMetaData接口
四、事务
1、JDBC中的事务
2、保存点
3、批量更新 一、JDBC简…目录
一、JDBC简介
二、数据库访问
1、加载数据库驱动
2、建立数据连接
3、创建Statement对象
4、执行SQL语句
5、访问结果集
三、MetaData接口
1、DatabaseMetaData接口
2、ResultSetMetaData接口
四、事务
1、JDBC中的事务
2、保存点
3、批量更新 一、JDBC简介
1概述 JDBC是一种执行SQL语句的Java API可以通过JDBC连接到关系数据库并通过SQL结构化查询语言完成对数据库的增删改查操作。 JDBC访问数据库时需要完成三件工作建立与数据库的连接、执行SQL语句、获取执行结果。
2JDBC驱动 数据库驱动程序是JDBC程序和数据库之间的转换层 数据库驱动程序负责将JDBC调用映射成特定的数据库调用
3JDBC API JDBC API提供了一组用于与数据库进行通信的接口和类定义在java.sql中
名称描述DriverManager用于管理JDBC驱动的服务类负责加载和卸载各种驱动程序建立数据库的连接并获取连接对象Connection用于数据库连接每一个Connection对象代表一个数据库连接会话Statement用于执行SQL语句的工具接口当执行查询语句时返回一个查询到的结果集PreparedStatement用于执行预编译的SQL语句CallableStatement用于调用SQL存储过程ResultSet表示结果集包含访问查询结果的各种方法 在JDBC编程中易引发SQLException异常需要进行异常处理所以SQLException也是JDBC编程中其他异常类型的基础。 在JDBC中执行SQL查询语句方式有一般查询Statement、参数查询PreparedStatement、存储过程CallableStatement三种。 二、数据库访问
使用JDBC访问数据库的步骤 加载数据库驱动-建立数据连接-创建Statement对象-执行SQL语句-访问结果集
1、加载数据库驱动 使用Class类的forName() 方法来加载数据库驱动
Class.forName(com.mysql.jdbc.Driver) //加载mysql驱动
Class.forName(oracle.jdbc.driver.OracleDriver) //或加载Oracle驱动
2、建立数据连接 使用DriverManager.getconnectionString urlString userString pass方法建立数据库连接。
Class.forName(oracle.jdbc.driver.OracleDriver)
Connection conn DriverManager.getConnection(jdbc:oracle:thin:127.0.0.1:8001:orcl //URL链接字符串root //用户名admin //密码
)
3、创建Statement对象 通过Connection对象获得Statement的方法有
createStatement创建一个基本的Statement对象prepareStatementString sql根据参数化的SQL语句创建一个预编译的PreparedStatement对象prepareCallString sql根据SQL语句来创建一个CallableStatement对象 创建Statement实例
Statement smt conn.createStatement();
4、执行SQL语句 执行SQL语句返回一个结果集ResultSet。 执行SQL语句三种方法
executeQuery只能执行查询语句executeUpdate和executeLargeUpdate用于执行DML插入、增加、删除和DDL创建表、删除表语句execute可以执行任何SQL语句 执行SQL语句的实例
ResultSet rs smt.executeQuery(SELECT sno,name,age FROM student);
5、访问结果集 由于SQL的查询结果使用ResultSet进行封装所以使用getXXX列名或列索引方法访问结果集中的数据时可通过列索引或列名来获取游标所指行中的列数据XXX代表的是获取的数据类型。 循环输出结果集中的数据
While(rs.next()){System.out.println(rs.getString(1)) //循环输出第一列数据
}While(rs.next()){System.out.println(rs.getString(username)) //循环输出username列数据
} 当数据库操作执行完毕或退出应用前应该执行关闭操作关闭顺序为
1关闭结果集rs.close()
2关闭Statement对象stmt.close()
3关闭连接conn.close()
三、MetaData接口
1、DatabaseMetaData接口 DatabaseMetaData接口用于获取数据库的相关信息通过Connection接口的getMetaData方法进行获取。 DatabaseMetaData的常用方法如下 实例
DBUtil db new DBUtil(); //通过工具类获取数据库连接
Connection conndb.getConnection(); //建立数据连接
DatabaseMetaData dmd conn.getMetaData();
System.out.println(数据库产品名dmd.getDatabaseProductName()); //输出数据库产品名
System.out.println(数据库版本号dmd.getDatabaseProductVersion()); //版本号
System.out.println(驱动类型名dmd.getDriverName()); //驱动类型名
db.closeAll(); //关闭连接2、ResultSetMetaData接口 ResultSetMetaData接口用来获取结果集的结构如结果集的列数和列名。 ResultSetMetaData的常用方法如下 实例
DBUtil dbnew DBUtil();
db.getConnection();
ResultSet rsdb.executeQuery(selectSql,null); //结果集初始化并执行选择sql
ResultSetMetaData rsmdrs.getMetaData(); //接口初始化
System.out.println(总共有rsmd.getColumnCount()列); //返回结果集列数
db.closeAll();
四、事务
1、JDBC中的事务 事务由一步或几步数据库操作序列组成的逻辑执行单元这系列操作要么全部执行要么全部放弃执行。 事务四个特性原子性、一致性、隔离性、持久性。 在JDBC中对事物操作提供了支持由Connection提供在默认情况下进行自动提交可以使用Connection对象中的setAutoCommit方法开启或者关闭自动提交模式。
conn.setAutoCommit(false); //关闭自动提交 当所有SQL语句都执行成功后调用Connection的commit方法来提交事务。
conn.commit(); 任意一条SQL语句执行失败调用Connection的rollback方法来回滚事务
conn.rollback(); 当遇到未处理的SQLException异常时事务也会自动回滚若捕获该异常则显式调用rollback进行回滚。
2、保存点 设置保存点
Savepointconn.setSavepoint(); 回滚保存点
conn.rollback(Savepoint);
3、批量更新 批量更新多条SQL语句被作为一批操作同时收集、提交通过DatabaseMetaData的supports查看底层数据库是否支持批量更新。
Statement statconn.createStatement(); //创建Statement对象
stat.addBatch(INSERT INTO stu(name,id,sex,age) VALUES(张三,001,男,20)); //收集多条SQL语句
stat.addBatch(INSERT INTO stu(name,id,sex,age) VALUES(李四,002,男,21));
stat.executeBatch(); //同时执行多条SQL语句 参考书籍《Java 8 基础应用与开发》QST青软实训编