Java 笔记 28
sql
java.sql包和javax.sql包
- JDBC是代表一组公共的接口。
- JDBC中的这些公共接口和DBMS数据库厂商提供的实现类(驱动jar),是为了实现Java代码可以连接DBMS,并且操作它里面的数据而声明的。
- 常用的接口:
- Connection:连接
- Statement和PreparedStatement:增删改查
- ResultSet:接收和处理查询结果
- 辅助的类:
- DriverManager:驱动管理类。
- JDBC程序的编写步骤:
- 1、注册驱动(如果这步不做,编译不会报错,运行会报找不到驱动类等异常)
-
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
- 2、连接数据库:
-
DriverManager和Connection
- 3、操作数据库
- (1)增、删、改:Statement或PreparedStatement
- (2)查询:Statement或PreparedStatement
-
ResultSet
- 4、断开连接,关闭对应各种资源
- url:统一资源定位符,通俗的讲就是网址
-
url是用来定位到①哪台电脑上的②哪种DBMS数据库软件,③访问哪个数据库,这个DBMS软件目前运行在④哪个断开号⑤连接这个DBMS软件是否还需要其他的参数。
-
url的标准格式:
-
协议://主机名:端口号/资源路径
- mysql:
-
jdbc:mysql://主机名:端口号/数据库名?其他的参数
-
例如:
-
jdbc:mysql://localhost:3306/test
- 注册驱动三部曲:
- (1)把jar放到项目的libs中
- (2)把jar添加到build path中
- 在jar包上选择右键,Build Path–>Add to Build Path
- (3)在代码中注册驱动
步骤:
- 1、注册驱动
- 三部曲:(1)把jar复制到libs(2)把jar添加到Build path中(3)加载驱动类
- 2、建立连接
- 获取Connection对象
- 3、执行sql
- (1)编写sql
- (2)创建Statement
- (3)执行sql
- 增删改:int len = Statement对象.executeUpdate(sql)
- 查询:ResultSet rs = Statement对象.executeQuery(sql)
- 4、遍历结果集
- 5、关闭资源
Statement问题:
- 1、SQL拼接:太麻烦
- 2、SQL注入
- 3、无法处理blob等二进制类型的数据
- 如何解决这些问题,使用Statement的子接口PreparedStatement