JDBC操作步骤:
0、导入jar包
1、注册驱动
2、获取连接
3、获取sql语句操作对象
4、执行语句
5、处理结果
0、JAR包的导入:
去官网下载对应平台的jar
https://dev.mysql.com/downloads/
下载完成后是zip压缩文件,解压,找到其中的jar文件,导入到项目下的libs文件夹。右击选择 add as library,注意一个文件夹下只有存在jar包时会有该选项。所以注意不要直接放入zip文件
1、注册驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
2、获取连接:
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","123456");
3、获取statement,才能实现sql语句的执行
stmt = connection.createStatement();
4、执行sql语句:只有查询语句会用到executeQuery(sql),增删改均为executeUpdate
String sql = "select * from balance";
rs = stmt.executeQuery(sql)
5、处理结果:
rs.next();
int a = rs.getInt(1);
String name = rs.getString("Name");
int balance = rs.getInt("balance");
System.out.println(a+"======" + name+"======="+balance);
第一个next是将游标移动到结果上,也就是正式开始获取结果
使用”get+数据类型“如getString来获取一行中的某一列的结果,参数可以是从1开始的序号(排序),也可以是一串字符(根据字符串匹配字段名)
6注意事项:
注册驱动,获取连接connection等操作均有可能抛出异常,因此选择使用try...catch来捕获异常
但connection和结果集resultset都属于资源,需要进行释放,且无论代码运行是否成功都要进行的释放,因此放入finally中
若connection等资源是在try里面定义的,则finally代码块无法获取
这里选择在try..catch外进行connection资源的定义,在try里面真正获取资源:
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","123456");
。。。。。
fianlly{
。。。。也不要忘了释放其他资源,且释放资源的话要先检查是否为null,否则会有空指针报错
if(connection != null) {
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}