JDBC连接MySQL并实现模糊查询的方法是什么
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要讲解了"JDBC连接MySQL并实现模糊查询的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JDBC连接MySQL并实现模糊查询
千家信息网最后更新 2025年01月21日JDBC连接MySQL并实现模糊查询的方法是什么
这篇文章主要讲解了"JDBC连接MySQL并实现模糊查询的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JDBC连接MySQL并实现模糊查询的方法是什么"吧!
场景:
在学习JDBC的语言中,每次都执行通用的几步:即注册驱动,获取连接,创建操作,处理结果,释放资源 过于复杂,因此不妨将上述步骤封装成工具类,只对外提供方法!
描述:
这是不使用工具类的封装写出来的代码,比较冗余复杂
package com.zdx.JDBC; import java.sql.*; public class JAVA1129_5 { public static void main(String[] args) { //设置空对象,注册驱动,获取连接,创建操作,处理结果集,释放资源 String url = "jdbc:mysql://127.0.0.1:3306/hello"; String username = "root"; String password = "rota"; String SQL = "insert into stu values(1,'zdx','nbnc'),(2,'cyc','qwq');";// String SQL1 = "update stu set sname ='xzq',major='bask' where sno = '1';"; String SQL1="select * from stu"; Connection connection = null; Statement statement = null; ResultSet resultset = null; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(url, username, password); statement = connection.createStatement(); int cnt = statement.executeUpdate(SQL); if (cnt != 0) { System.out.println("执行成功"); } ResultSet result = statement.executeQuery(SQL1); while (result.next()) { //随着光标移动对操作对象进行操作 System.out.println("nbnb"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } //释放资源,必须在最后加上finally语句块执行 finally { if (resultset != null) { try { resultset.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }
解决方案:
首先类内的构造方法加私有修饰符,模仿Sun公司工具类,如Arrays类 和 Collection 。
其次注册驱动,利用静态代码块内只注册一次进行注册驱动
然后获取数据库连接,返回数据库连接对象的方法内有异常,不能catch,需要向外扔。
最后封装一个关闭的方法。
注意由于封装工具类,且对外只提供方法因此都封装成类方法(即static修饰)
package com.zdx.JDBC; import java.sql.*; //2021.11.2920点03分 对数据库的工具类进行封装public class DBUtil{ private DBUtil(){} static{ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } }//利用静态代码块在类加载时只加载一次的特性注册驱动。 //获取连接的方法 public static Connection getConnection (String url,String user,String password)throws SQLException{ return DriverManager.getConnection(url,user,password);//这里注意驱动管理类内调用的获取连接方法返回对象就是connection对象。 } //关闭资源 //按照顺序,结果集,数据库操作对象,连接对象! public static void close(Connection connection,Statement ps,ResultSet resultSet){ if(resultSet!=null){ try { resultSet.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(ps!=null){ try { ps.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(connection!=null){ try { connection.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } }
对工具类进行调用实现模糊查询:
package com.zdx.JDBC; import java.sql.*; public class Main { public static void main(String[] args) { Connection connection = null; PreparedStatement ps = null; ResultSet resultSet = null; String url = "jdbc:mysql://127.0.0.1:3306/hello"; String user = "root"; String password = "rota"; //获取连接 try { connection = DBUtil.getConnection(url, user, password); } catch (SQLException throwables) { throwables.printStackTrace(); } //获取预编译的数据库操作对象 String SQL = "select sname from stu where sname like ?"; try { ps = connection.prepareStatement(SQL); ps.setString(1, "_y%"); resultSet = ps.executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getString("sname")); } } catch (SQLException throwables) { throwables.printStackTrace(); } //释放资源 finally { DBUtil.close(connection, ps, resultSet); } }}
感谢各位的阅读,以上就是"JDBC连接MySQL并实现模糊查询的方法是什么"的内容了,经过本文的学习后,相信大家对JDBC连接MySQL并实现模糊查询的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
方法
对象
工具
封装
驱动
查询
数据
数据库
资源
学习
代码
结果
复杂
内容
就是
静态
处理
对外
成功
光标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
可以把服务器安装到虚拟机吗
阿里云服务器发票能重开吗
北京巨量引擎网络技术有限公司
小学网络安全主题班会
蚂蚁盒子为什么无法连接服务器
辉章网络技术工作室
cs显示韩国服务器
泰坦之旅精灵服务器怎么过
亚博科技互联网彩票app
区块链语言服务器支撑
如何在数据库表里快速查找
网络安全短信互联网
吉林市数据库
湖北银行软件开发待遇怎么样
循证数据库
服务器软件打开慢
计算机网络技术基础电子书
滦南市网络安全宣传
惠普机架式服务器价格
做了个登录界面怎么绑服务器
网络安全日志在哪下载
数据库组件委托表
放心软件开发参考价格
北京中青龙图网络技术
易语言数据库登陆教程源码
靠谱的制造业管理软件开发商
软件开发 工作分解结构
软件专业数据库春季高考占多少分
专利数据库研究报告
刀片服务器主板diy