JDBC-java访问数据库
定义:JDBC是一个独立于数据库管理系统的,通用的SQL数据库存取和操作的公共接口
(由JAVA类和接口组成,接口由各数据库厂家负责实现)
使用方法:
1、加载驱动 Class.forName(“数据库驱动全类名”)
Class.forName("oracle.jdbc.driver.OracleDriver"); Oracle加载驱动写法
2、获取连接 DriverManager.getConnection(连接数据库的URL,数据库账号,数据库密码)
例:(链接本机数据库)
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "账号", "密码");
(连接数据库的URL为 jdbc:oracle:thin:@地址:1521:数据库名)
(都会返回 Connection)
DatabaseMetaData a = conn.getMetaData() 数据库源数据
getMetaData() 返回数据库源数据
3、获取操作声明
Statement a = conn.createStatement();
a.executeUpdate(“增删改语句”) (添加和修改时返回的是受影响的记录条数)
a.executeQuery(“查询语句”) (返回 ResultSet 结果集)
PreparedStatement 执行编译语句的操作声明
特点 是Statement的子类,执行效率高,防止SQL注入
用法 connection 对象.prepareStatement(sql语句) sql语句可以用问号作为占位符
替换占位符 setXXX(占位符序号,替换的内容) 根据XXX的数据类型和占位符序号进行内容替换(占位符序号从1开始)
CallableStatement 执行存储过程的操作声明
是PreparedStatement的子接口
4、处理结果集
ResultSet a = b.executeQuery(“查询语句”);
遍历
while(a.next()){
String sno = a.getString("sno");
String cno = a.getString("cno");
String degree = a.getString("degree");
System.out.println(cno+" "+cno+" "+degree);
}
ResultSetMetaData a = b.getMetaData() 返回结果集的源数据
next() 判断并返回是否存在下一行,如果存在就跳转到下一行
getXXXX(字段序号或字段名称) 根据字段序号或字段名称返回XXXX类型的字段数据
frist() 跳转到首行
last() 跳转到尾行
getRow() 获取当前行号
5、事务 数据库中构成单个逻辑工作单元的操作集合
特性ACID A原子性
C一致性
I隔离性
D制约性
实现 connection对象.setAutoCommit(false) 关闭自动提交
connection对象.commit() 操作数据之后进行提交
connection对象.rollback() 如果有数据异常就回滚
6、数据库连接池 负责分配、管理和释放数据库连接
允许应用程序使用现有的连接
ComboPooledDataSource 数据源 构造方法 ComboPooledDataSource()
ComboPooledDataSource(“配置名称”) 通过配置文件配置项构建数据源的实例
c3p0-config.xml
方法 setDriverClass 设置驱动类
setJdbcUrl 设置数据库地址
setUser 设置用户
setPassword 设置密码
setMinPoolSize 设置链接最小数量
setMaxPoolSize 设置链接最大数量
setInitialPoolSize 设置初始连接数量
getConnection 获取链接对象
用法 可以使用单例模式,在整个系统使用一个连接池
7、实体类