Jdbc笔记
一. 引言
1. 概念:
是java程序连接数据的桥梁,通过jdbc驱动java程序可以操作访问数据库软件
2. jdbc的组成
1)接口:由sun公司定义,提供给程序员开发使用,已经在jdk里提供(java.sql包和javax.sql包)
2)实现类:有数据库厂商提供,通过jar包的形式提供
ojdbc5.jar — jdk5,6配合 ojdbc6.jar — jdk7,8
3. 搭建环境 (导入jar包)
1)普通文本编辑工具,将jar包所在路径配置到CLASSPATH环境变量里
CLASSPATH = . ; D:\160班级目录\jdbc\资料\ojdbc6.jar
2)使用集成开发工具
① 在项目路径下新建一个lib文件夹,将ojdbc6.jar拷贝到文件夹下
② 右键选中jar包,选择build path选项,选择add to build path
3) 在myeclipse里配置数据库操作窗口
① 菜单window --> show view --> others --> 搜索 db browser --> 选中
② 在打开的窗口有右键 --> new --> 填表格
③ 在src目录下新建一个sql包,里面新建一个 xxx.sql的文件
二. 第一个jdbc程序
1. 注册Driver(驱动类加载)
Class.forName(" 驱动类的全类名") ;
注意: 可以在一个jdbc程序里注册多个Driver驱动类
2. 获取数据库连接
代码: Connection conn = DriverManager.getConnection( 地址,用户名,密码);
注意: 实际负责建立数据库连接的程序是Driver实现类,DriverManager只是一个工具类
地址解析:
3. 创建Statement(sql命令的传送工具)
代码: Statement stm = conn.createStatement();
4. 执行sql命令(传送)
1)executeUpdate(sql) : 用来执行insert update delete命令,返回int值(命令影响了几行数据)
2)executeQuery(sql) : 用来执行select命令,返回值为ResultSet(包含了查询结果)
3)execute(sql) : 可以用来执行所有的sql命令,返回boolean值(标志是否有结果集返回)
5. 处理结果集
方法: next() getXxx()系列
6. 释放资源
注意: 资源释放按照生成顺序反向释放 rs – stm – conn
三. 带参sql命令的执行
1. 使用Statement执行带参sql
缺陷:1) 命令字符串的拼接比较繁琐
2)sql注入
2. 使用PreparedStatement执行带参的sql
1)PreparedStatement 是Statement的子接口,可以解决sql注入(字符串拼接)的问题
2 ) 使用
① 创建PreparedStatement对象( 需要直接指定执行的sql )
PreparedStatement pstm = conn.prepareStatement( sql ) ;
pstm允许指定 “半成品” 的sql , 允许在sql命令中使用?作为占位符,来代替暂时不方便给定的值
② 为?设置值 : pstm提供一系列的setXxx()
pstm.setInt( ?的下标, ?的值 ) pstm.setString() pstm.setDouble() pstm.setDate()
③ 执行sql
pstm.executeQuery() pstm.executeUpdate()
四. JdbcUtil工具类的封装
1. java代码重构的基本原则
2. 配置文件的常见格式
1) 常见文件类型:xxxx.properties xxx.xml
2) properties文件 : 每一行保存一个值 , 每一行由 name=value
3) Properties集合,它是Hashtable的子类 , 主键和值默认都是String
集合提供了一个load(InputStream) , 可以帮助读取指定文件解析读到的内容,并且默认将所有数据存入集合.