1、JDBC简介
1)JDBC(Java Database Connection)是java语言访问和操作数据库的一种途径。
2)JDBC操作数据库的SQL的类型:DML、DDL、DCL
3)JDBC驱动实现java连接操作不同类型的数据库。
2、JDBC包
Java.sql——JDBC的核心类和接口
Javax.sql——数据库连接池、数据源、JNDI和Rowset等高级特征
3、JDBC常用接口和类
—DriverManager:驱动管理器,获得数据库连接
—Connection:数据库连接接口
—Statement:语句接口,用来静态操作SQL语句
—PreparedStatement:预定义语句,用来动态操作SQL语句
—CallableStatement:可以调用存储过程的预定义语句
—ResultSet:结果集,保存数据记录的结果集合
—ResultSetMetaData:结果集元数据,如:列名称、列类型等
—DatabaseMetaData:数据源数据,如:数据库名称,版本等
4、JDBC编程步骤
1)加载数据库驱动(jar文件)
2)获得数据库连接
3)创建语句
4)执行查询
5)遍历结果集
6)关闭数据库连接
5、Statement的常用方法://静态的
execute(String sql):执行给定的sql语句,该语句可能返回多个结果
executeQuery(String sql):执行给定的sql语句,该语句返回单个ResultSet对象
executeUpdate(String sql):执行给定的sql语句,该语句可能为INSERT、UPDATE或 DELETE语句,或者不返回任何内容的sql语句(如 sql DDL语句)
6、ResultSet的常用方法:
Absolute(n):绝对定位到第n行
next():下一行,返回布尔型
getXXX():获取对应字段对应类型的数据
getRow():获取当前行的光标
0:代表第一行的前边或最后一行后边
ResultSet对象不可更新,仅有一个向下移动的光标,因此只能迭代一次,以下代码演示了如何生成可滚动且不受其他更新的影响可更新结果集:(前提是更新的表要有主键)
Statement=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//两参数:一个可滚动,一个可更新
7、JDBC MetaData
1)结果集的MetaData
ResultSet的getMetaData方法返回结果集元数据对象ResultSetMetaData
2)数据库的MetaData
Connr\ection的getMetaData方法返回结果集元数据对象DatabaseMetaData
8、PreparedStatement//动态的,有条件的
PreparedStatement为占位符“?”赋值,预生成SQL语句,动态操作数据库
根据当前SQL的数据类型调用相应的方法如下:
setAsciiStream(int parameterIndex, InputStream x) | 将指定参数设置为给定输入流。 |
setBigDecimal(int parameterIndex, BigDecimal x) | 将指定参数设置为给定 java.math.BigDecimal 值。 |
setBinaryStream(int parameterIndex, InputStream x) | 将指定参数设置为给定输入流。 |
setBoolean(int parameterIndex, boolean x) | 将指定参数设置为给定 Java boolean 值。 |
setByte(int parameterIndex, byte x) | 将指定参数设置为给定 Java byte 值。 |
setBytes(int parameterIndex, byte[] x) | 将指定参数设置为给定 Java byte 数组。 |
setDate(int parameterIndex, Date x) | 使用运行应用程序的虚拟机的默认时区将指定参数设置为给定 java.sql.Date 值。 |
setDouble(int parameterIndex, double x) | 将指定参数设置为给定 Java double 值。 |
setFloat(int parameterIndex, float x) | 将指定参数设置为给定 Java REAL 值。 |
setInt(int parameterIndex, int x) | 将指定参数设置为给定 Java int 值。 |
setLong(int parameterIndex, long x) | 将指定参数设置为给定 Java long 值。 |
setNull(int parameterIndex, int sqlType, String typeName) | 将指定参数设置为 SQL NULL。 |
setObject(int parameterIndex, Object x) | 使用给定对象设置指定参数的值。 |
setShort(int parameterIndex, short x) | 将指定参数设置为给定 Java short 值。 |
setString(int parameterIndex, String x) | 将参数设置为给定 Java String 值。 |
setTime(int parameterIndex, Time x) | 将指定参数设置为给定 java.sql.Time 值。 |
setTimestamp(int parameterIndex, Timestamp x) | 将指定参数设置为给定 java.sql.Timestamp 值。 |
setURL(int parameterIndex, URL x) | 将参数设为给定java.net.URL 值。 |
9、CallableStatement:用于执行 SQL 存储过程的接口。
三种存储过程:无参数,有输入参数,有输入输出参数
10、DAO设计模式