JDBC连接的六步实例代码(与mysql连接)


Posted in MySQL onMay 12, 2021

JDBC的六步:

1.注册驱动

2.获取数据库的连接

3.获取数据库的操作对象

4.执行sql语句

5.处理查询结果集(如果执行的语句中没有select语句这一步不用写)

6.关闭资源

第一步:注册驱动

//异常一定是需要处理的
//根据版本不同书写的代码有一些变化,老版本是
DriverManager.register(new com.mysql.jdbc.Driver());
//或者
Class.forName("com.mysql.jdbc.Driver");
 
 
//新版本是
DriverManager.register(new com.mysql.cj.jdbc.Driver());
//或者
Class.forName("com.mysql.cj.jdbc.Driver");

第二步:获取数据库的连接

//因为要进行try..catch,还要关闭这个资源,因此写在try外边且赋值为空
Connection conn = null;
...
//返回值是Connection,老版本和新版的url书写也不一样
// jdbc:mysql://localhost:3306/t_use这个前面的都一样,把t_use更改为自己的数据库名
//老版
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use","用户名","密码");
 
 
//新版
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use?serverTimezone=GMT%2B8","用户名","密码");

第三步:获取数据库操作对象

//这个和刚才的Connection是一样的
Statement st = null;
...
//这样就把对象创建好了
st = conn.createStatement();

第四步:执行sql语句

//引号里面写sql语句
String sql = " ";
//再用刚才创建好的对象接入这个sql语句
//这里还有需要说的,如果不是select语句就用下面这个,返回值是一个int,这个就不需要第五步了
st.executeUpdate(sql);
 
//如果sql语句是select的话,就要用下面的这个语句了,还需要定义一个ResultSet对象,去接收这个值
//然后进行第五步的处理
ResultSet rs = null; //和Connection一样的
rs = st.executeQuery(sql);

第五步:处理查询结果集

//这个只有select语句才进行处理,不仅可以getString还可以getInt等
while(rs.next()){
    String str = rs.getString("需要输出的字段的名字");
}

第六步:关闭资源

//前面五步都是在try里面进行的,第六步是在finally进行的
//关闭连接
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (st != null) {
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }

关闭连接也是有顺序的,先关ResultSet,再关Statement对象,最后关Connection对象.

完整代码

package jdbc.com;
import com.mysql.cj.protocol.Resultset;
 
import java.sql.*;
public class Test02 {
    public static void main(String[] args) {
 
        Connection conn = null;
        Statement st = null;
        ResultSet rt = null;
        try {
            //注册连接(可以写到一行里面)
            //com.mysql.cj.jdbc.Driver Driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            //获取数据库连接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/liu2?serverTimezone=GMT%2B8","用户名","密码");
            //获取数据库操作对象
            st = conn.createStatement();
            //执行sql语句
            String sql = "select ename,sal from emp order by sal desc";
            rt = st.executeQuery(sql);
            //处理查询语句
           while(rt.next()){
               String ename = rt.getString("ename");
               String sal = rt.getString("sal");
               System.out.println(ename + "," + sal);
           }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            //关闭连接
            if (rt != null) {
                try {
                    rt.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (st != null) {
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
 
        }
    }
}

最后,这个如果要传入值的话,可能会造成sql的注入,解决办法就是把Statement变成PreparedStatement,就可以避免sql的注入问题了,只不过第三步和第四步代码有点变化,就不再多说了。。

总结

到此这篇关于JDBC连接(与mysql连接)的文章就介绍到这了,更多相关JDBC与mysql连接内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL查看表和清空表的常用命令总结
May 26 MySQL
SQL实现LeetCode(175.联合两表)
Aug 04 MySQL
MySQL数据库中varchar类型的数字比较大小的方法
Nov 17 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
关于k8s环境部署mysql主从的问题
Mar 13 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
Mysql数据库group by原理详解
Jul 07 MySQL
MySQL索引失效场景及解决方案
Jul 23 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL数据库查询之多表查询总结
Aug 05 MySQL
MySQL索引知识的一些小妙招总结
MySQL COUNT函数的使用与优化
May 10 #MySQL
解读MySQL的客户端和服务端协议
MySQL 重写查询语句的三种策略
May 10 #MySQL
详解MySQL 联合查询优化机制
mysql对于模糊查询like的一些汇总
May 09 #MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
You might like
PHP 采集获取指定网址的内容
2010/01/05 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
js实现登录与注册界面
2017/11/01 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
用python找出那些被“标记”的照片
2017/04/20 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
python实现俄罗斯方块游戏
2020/03/25 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python开发一款翻译工具
2020/10/10 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
python中pow函数用法及功能说明
2020/12/04 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
岗位职责风险点
2014/03/12 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
总经理助理岗位职责
2015/01/31 职场文书
法定授权委托证明书
2015/06/18 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
实习感想范文
2015/08/10 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript