文章目录
JDBC基础
什么是JDBC
JDBC 规范定义接⼝,具体的实现由各⼤数据库⼚商来实现。
JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要
具体的实现类,也就是数据库驱动。每个数据库⼚商根据⾃家数据
库的通信格式编写好⾃⼰数据库的驱动。所以我们只需要会调⽤
JDBC 接⼝中的⽅法即可, 数据库驱动由数据库⼚商提供。
JDBC连接
使⽤JDBC的好处:
- 程序员如果要开发访问数据库的程序,只需要会调⽤ JDBC 接⼝中的⽅
法即可,不⽤关注类是如何实现的。 - 使⽤同⼀套 Java 代码,进⾏少量的修改就可以访问其他 JDBC ⽀持的数据库。
1.导入jar包-驱动包
mysql-connector-java-8.0.16.jar
2.加载驱动类
加载驱动类
Class.forName("com.mysql.jdbc.Driver") mysql 5以前的版本
Class.forName("com.mysql.cj.jdbc.Driver") mysql 5以后的版本
mysql: com.mysql.jdbc.Driver
oracle: oracle.jdbc.driver.OracleDriver
3.获得数据库得到连接 创建通道
Connection conn= DriverManager.getConnection(url,username,password);
mysql的url: jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=UTC
oracle的url: jdbc:oracle://
4.可能获得的异常
原因:SQLException
1.No suitable driver url地址前缀错误
2.Unknow database xxx database数据库名称错误
3.Access denied for user 账号和密码发生错误
5.创建执行SQL语句的Statement对象 交通工具
Statement st=conn.createStatement();
6.执行sql语句的预编译处理对象 PreparedStatement
PreparedStatement ps=conn.preparedStatement(sql)
sql可以是完整的也可以带占位符"?"的
如果sql语句带有占位符"?",需要通过setString等方法进行注入
7.执行SQL语句 获得结果
boolean a=st.execute(sql);DDL,DML,DQL,大部分情况下DDL使用,因为其他有自己的执行语句
int a=st.executeUpdate(sql);DML使用,返回一个int值,表达影响的行数
ResultSet a=st.executeQuery(sql);返回一个ResultSet
8.处理 ResulSet结果
封装对象:过程繁琐
next():
getXX(index/columnName):
9.关闭Statement对象,关闭connection通道
st.close();
conn.close();
User.JDBCUtil 工具类的封装
由于JDBC连接的繁琐,所以我们将他们封装成工具类,减少代码的编写量
1.读取properties配置文件
在静态代码块中,预先加载properties配置文件,获得URL,账号密码等数据
在读取数据后直接加载驱动类
2.封装getConnection方法
调用getConnection()方法,传入读取的url,username,password等参数
Connection conn= DriverManager.getConnection(url,username,password);
3.封装createStatement预编译处理方法
直接调用JDBCUtil 工具类中的getConnection方法
创建预编译对象
ps=getConnection().prepareStatement(sql);