JDBC典型用法、执行SQL语句方式
JDBC典型用法
API:
DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象
Connection: 代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接
Statement:用于执行SQL语句的工具接口。该对象既可用于执行DDL、DCL语句,也可用于执行DML语句,还可用于执行SQL查询。当执行SQL查询时,返回查询到的结果集
ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据
编程步骤:
1.加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动。
2.通过DriverManager获取数据库连接。
3.通过Connection对象创建Statement对象。
4.使用Statement执行SQL语句。
5.操作结果集。
6.回收数据库资源,包括关闭ResultSet、Statement 和Connection等资源。
执行SQL语句方式
JDBC不仅可以执行查询,还可以执行DDL、DML语句
可以用executeUpdate()方法执行DDL、DML语句
使用executeUpdate()执行DML语句与执行DDL语句基本相似,区别是executeUpdate()执行DDL语句后返回0,而执行DML语句后返回受影响的记录条数。
当不清楚SQL语句类型时,就需要用到execute()执行SQL语句,使用execute0方法执行SQL语句的返回值只是boolean 值,它表明执行该SQL语句是否返回了ResultSet对象。
如果经常需要反复执行一条结构相似的SQL语句,它们的结构基本相似,只是执行插入时插入的值不同,可以使用带占位符(?)参数的SQL语句来代替它,但Statement执行SQL语句时不允许使用问号占位符参数,而且这个问号占位符参数必须获得值后才可以执行。为了满足这种功能,JDBC提供了PreparedStatement 接口,它是Statement接口的子接口,它可以预编译SQL语句,预编译后的SQL语句被存储在PreparedStatement 对象中,然后可以使用该对象多次高效地执行该语句。简而言之,使用PreparedStatement比使用Staterment 的效率要高。
除此之外,使用PreparedStatement还有一个优势——当 SQL语句中要使用参数时,无须“拼接”SQL字符串。
使用PreparedStatement 执行带占位符参数的SQL语句时,SQL语句中的占位符参数只能代替普通值,不要使用占位符参数代替表名、列名等数据库对象,更不要用占位符参数来代替SQL语句中的insert、select等关键字。
SQL语句将MySQL的语句结束符改为双斜线(//), 这样就可以在创建存储过程中使用分号作为分隔符(MySQL默认使用分号作为语句结束符)。
调用存储过程使用CallableStatement, 可以通过Connection 的prepareCall()方 法来创建CallableStatement对象,创建该对象时需要传入调用存储过程的SQL语句。调用存储过程的SQL语句总是这种格式: {call 过程名(?,?,?..)},其中的问号作为存储过程参数的占位符。
ctotalk: 感谢分享,学以致用。
原味吐司: 加油,写的很好
DpprZ 回复 皮皮杨233: 大佬别搞我QAQ
皮皮杨233: tql