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的数据库引擎为INNODB的方法
May 26 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
浅谈MySQL next-key lock 加锁范围
Jun 07 MySQL
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
Jun 26 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
MySQL连接控制插件介绍
Sep 25 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySql分区类型及创建分区的方法
Apr 13 MySQL
分析MySQL优化 index merge 后引起的死锁
Apr 19 MySQL
MySQL索引知识的一些小妙招总结
MySQL COUNT函数的使用与优化
May 10 #MySQL
解读MySQL的客户端和服务端协议
MySQL 重写查询语句的三种策略
May 10 #MySQL
详解MySQL 联合查询优化机制
mysql对于模糊查询like的一些汇总
May 09 #MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
You might like
QueryPath PHP 中的jQuery
2010/04/11 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
详解php中的implements 使用
2017/06/13 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python中运行并行任务技巧
2015/02/26 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
OpenCV 模板匹配
2019/07/10 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
婚宴邀请函
2015/01/30 职场文书
公司禁烟通知
2015/04/23 职场文书