操作mysql的jdbc(JDBC连接的六步实例代码与mysql连接)
类别:数据库 浏览量:1227
时间:2021-10-05 00:28:56 操作mysql的jdbc
JDBC连接的六步实例代码与mysql连接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连接内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/zhinaijiangya/article/details/116566015
您可能感兴趣
- 关于mysql性能优化的描述(Mysql性能优化之索引下推)
- mysql记录binlog的方式(MySQL使用binlog日志做数据恢复的实现)
- MySql存储过程
- linuxmysql安装教程5.7.25学习(linux mysql5.5升级至mysql5.7的步骤与踩到的坑)
- mysql的sql语句优化5种方式(MySQL:五个常见优化SQL的技巧)
- mysql用户登录命令(mysql的登陆和退出命令格式)
- mysql 双主双备(MySQL配置了双主,是如何避免出现数据回环冲突的)
- mysql 索引举例(MySQL 各个索引的使用详解)
- apache2.4支持php5.5吗(WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置)
- python下的sql处理(python中aioysql异步操作MySQL的方法)
- mysql删除数据库的命令(MySQL 线上数据库清理数据的方法)
- mysql 慢查询日志
- SQL SERVER与MySQL数据类型的对应关系
- mysql mvcc 底层原理(浅析MySQL - MVCC)
- mysql如何删除整个表及数据(Mysql删除数据以及数据表的方法实例)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
- 越南新娘(越南新娘婚介网站)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
热门推荐
- dedecms数据库调用(DEDECMS直接获取软件模型本地下载地址或服务器名称)
- python使用门算法加密文件(python实现可逆简单的加密算法)
- 百度智能云安全教程(百度云服务器安全组开放端口配置图文教程)
- 什么是接口隔离原则
- css语言是干嘛的(Css预编语言及区别详解)
- reactnative ios(详解React Native与IOS端之间的交互)
- mysql中innodb四种事务级别(MySQL InnoDB 锁的相关总结)
- dedecms怎么设置下拉菜单(织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- 知乎上的35条神回复(75条笑死人的知乎神回复,用60行代码就爬完了)