MySQL_(Java)使用JDBC向数据库发起查询请求  传送门

  MySQL_(Java)使用JDBC创建用户名和密码校验查询方法  传送门

  MySQL_(Java)使用preparestatement解决SQL注入的问题  传送门

  使用工具类JDBCUtils意义:在做增、删除、修改、查询都需要获取Connection连接,使用完毕之后我们都需要关闭连接,这些工作是不断的重复在做的事情,所以我们可以把这些工作定义成一个工具类的方法,减少我们重复代码的编写

  

  MySQL数据库中的数据,数据库名garysql,表名garytb

  

  通过JDBC对MySQL中的数据进行查询

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7.  
  8. public class JDBC01 {
  9.  
  10. public static void main(String[] args) throws SQLException {
  11. selectAll();
  12. }
  13.  
  14. public static void selectAll() throws SQLException {
  15. //注册驱动 使用驱动连接数据库
  16. Connection con = null;
  17. Statement stmt = null;
  18. ResultSet rs = null;
  19. try {
  20. con = JDBCUtils.getConnection();
  21.  
  22. //数据库的增删改查
  23. stmt = con.createStatement();
  24. //返回一个结果集
  25. rs =stmt.executeQuery("select * from garytb");
  26.  
  27. while(rs.next()) {
  28. //System.out.println(rs.getString(1)+","+rs.getString(2)+","+rs.getString(3));
  29. System.out.println(rs.getString("id")+","+rs.getString("username")+","+rs.getString("password"));
  30. }
  31.  
  32. } catch (Exception e) {
  33. // TODO Auto-generated catch block
  34. e.printStackTrace();
  35. }finally {
  36. JDBCUtils.close(rs, stmt, con);
  37. }
  38. }
  39.  
  40. public static boolean selectByUernamePassword(String username,String password) throws SQLException {
  41. Connection con=null;
  42. Statement stmt = null;
  43. ResultSet rs = null;
  44. try {
  45. Class.forName("com.mysql.jdbc.Driver");
  46.  
  47. String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false";
  48. con = DriverManager.getConnection(url,"root","123456");
  49. stmt =con.createStatement();
  50. String sql = "select * from garytb where username = '"+username+"' and password = '"+password+"'";
  51. //System.out.println(sql);
  52. rs = stmt.executeQuery(sql);
  53.  
  54. if(rs.next()) {
  55. return true;
  56. }else {
  57. return false;
  58. }
  59.  
  60. } catch (Exception e) {
  61. // TODO Auto-generated catch block
  62. e.printStackTrace();
  63. }finally {
  64. if(rs!=null)
  65. rs.close();
  66. if(stmt!=null)
  67. stmt.close();
  68. if(con!=null)
  69. con.close();
  70. }
  71.  
  72. return false;
  73. }
  74.  
  75. public static boolean selectByUP2(String username,String password) throws SQLException{
  76. Connection con=null;
  77. Statement stmt = null;
  78. ResultSet rs = null;
  79. try {
  80. Class.forName("com.mysql.jdbc.Driver");
  81.  
  82. String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false";
  83. con = DriverManager.getConnection(url,"root","123456");
  84.  
  85. String sql = "select * from garytb where username = ? and password = ?";
  86. PreparedStatement pstmt = con.prepareStatement(sql);
  87. //添加参数
  88. pstmt.setString(1, username);
  89. pstmt.setString(2, password);
  90. //进行查询
  91. rs = pstmt.executeQuery();
  92.  
  93. if(rs.next()) {
  94. return true;
  95. }else {
  96. return false;
  97. }
  98.  
  99. } catch (Exception e) {
  100. // TODO Auto-generated catch block
  101. e.printStackTrace();
  102. }finally {
  103. if(rs!=null)
  104. rs.close();
  105. if(stmt!=null)
  106. stmt.close();
  107. if(con!=null)
  108. con.close();
  109. }
  110.  
  111. return false;
  112. }
  113.  
  114. //pageNumber是页数,第几页,pageCount是每页显示多少个数据
  115. public static void selectUserByPage(int pageNumber,int pageCount) throws SQLException {
  116. //注册驱动 使用驱动连接数据库
  117. Connection con = null;
  118. PreparedStatement stmt = null;
  119. ResultSet rs = null;
  120. try {
  121. Class.forName("com.mysql.jdbc.Driver");
  122.  
  123. //String url ="jdbc:mysql://localhost:3306/garysql";
  124. //指定编码查询数据库
  125. String url ="jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false";
  126. String user = "root";
  127. String password = "123456";
  128. //建立和数据库的连接
  129. con = DriverManager.getConnection(url,user,password);
  130.  
  131. stmt = con.prepareStatement("select * from garytb limit ?,?");
  132. stmt.setInt(1, (pageNumber-1)*pageCount );
  133. stmt.setInt(2, pageCount);
  134.  
  135. rs = stmt.executeQuery();
  136.  
  137. while(rs.next()) {
  138. //System.out.println(rs.getString(1)+","+rs.getString(2)+","+rs.getString(3));
  139. System.out.println(rs.getString("id")+","+rs.getString("username")+","+rs.getString("password"));
  140. }
  141.  
  142. } catch (Exception e) {
  143. // TODO Auto-generated catch block
  144. e.printStackTrace();
  145. }finally {
  146. if(rs!=null)
  147. rs.close();
  148. if(stmt!=null)
  149. stmt.close();
  150. if(con!=null)
  151. con.close();
  152. }
  153. }
  154. }

JDBC01.java

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6.  
  7. public class JDBCUtils {
  8.  
  9. private static final String connectionURL = "jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false";
  10. private static final String username = "root";
  11. private static final String password = "123456";
  12.  
  13. //创建数据库的连接
  14. public static Connection getConnection() {
  15. try {
  16. Class.forName("com.mysql.jdbc.Driver");
  17. return DriverManager.getConnection(connectionURL,username,password);
  18. } catch (Exception e) {
  19.  
  20. e.printStackTrace();
  21. }
  22. return null;
  23. }
  24.  
  25. //关闭数据库的连接
  26. public static void close(ResultSet rs,Statement stmt,Connection con) throws SQLException {
  27. if(rs!=null)
  28. rs.close();
  29. if(stmt!=null)
  30. stmt.close();
  31. if(con!=null)
  32. con.close();
  33. }
  34. }

JDBCUtils.java

  在JDBCUtils.java中实现构建对数据库的连接和关闭数据库操作

  1. private static final String connectionURL = "jdbc:mysql://localhost:3306/garysql?useUnicode=true&characterEncoding=UTF8&useSSL=false";
  2. private static final String username = "root";
  3. private static final String password = "123456";
  4.  
  5. //创建数据库的连接
  6. public static Connection getConnection() {
  7. try {
  8. Class.forName("com.mysql.jdbc.Driver");
  9. return DriverManager.getConnection(connectionURL,username,password);
  10. } catch (Exception e) {
  11.  
  12. e.printStackTrace();
  13. }
  14. return null;
  15. }
  16.  
  17. //关闭数据库的连接
  18. public static void close(ResultSet rs,Statement stmt,Connection con) throws SQLException {
  19. if(rs!=null)
  20. rs.close();
  21. if(stmt!=null)
  22. stmt.close();
  23. if(con!=null)
  24. con.close();
  25. }

  在JDBC01.java中需要对数据库中用户查询时直接调用JDBCUtils.java中方法即可

  1. //数据库的连接
  2. con = JDBCUtils.getConnection();
  3.  
  4. //关闭数据库
  5. JDBCUtils.close(rs, stmt, con);

  例如查询MySQL中所有用户的信息

  1. public static void selectAll() throws SQLException {
  2. //注册驱动 使用驱动连接数据库
  3. Connection con = null;
  4. Statement stmt = null;
  5. ResultSet rs = null;
  6. try {
  7. //数据库的连接
  8. con = JDBCUtils.getConnection();
  9.  
  10. //数据库的增删改查
  11. stmt = con.createStatement();
  12. //返回一个结果集
  13. rs =stmt.executeQuery("select * from garytb");
  14.  
  15. while(rs.next()) {
  16. //System.out.println(rs.getString(1)+","+rs.getString(2)+","+rs.getString(3));
  17. System.out.println(rs.getString("id")+","+rs.getString("username")+","+rs.getString("password"));
  18. }
  19.  
  20. } catch (Exception e) {
  21. // TODO Auto-generated catch block
  22. e.printStackTrace();
  23. }finally {
  24. JDBCUtils.close(rs, stmt, con);
  25. }
  26. }

MySQL_(Java)提取工具类JDBCUtils的更多相关文章

  1. JavaEE-实验一 Java常用工具类编程

    该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1.  使用类String类的分割split 将字符串  “Solutions to selected exercises ca ...

  2. Android开发学习之路-Palette颜色提取工具类使用

    视频(要FQ):https://www.youtube.com/watch?v=5u0dtzXL3PQ Palette是一个在support-v7包中的一个颜色提取工具类,用法比较简单,而且是谷歌官方 ...

  3. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  4. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  5. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  6. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  7. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  8. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  9. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

随机推荐

  1. C#面向对象17 23种设计模式

    1.简单工厂模式 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  2. 帝国cms 此栏目暂无任何新增信息处理办法

    在做一个新网站的时候不能保证每个栏目都能填充内容,当某个栏目没有内容填充的时候总会出现“此栏目暂无任何新增信息”看着挺不舒服. 其实想删除这行字也挺简单,只需要修改下语言包即可!如下: 找到语言包文件 ...

  3. 解决docker pull 速度慢问题

    解决docker pull 速度慢问题 将docker镜像源修改为国内的: 在 /etc/docker/daemon.json 文件中添加以下参数(没有该文件则新建): { "registr ...

  4. WebApi 跨域解决方案 --CORS

    跨站HTTP请求(Cross-site HTTP request)是指发起请求的资源所在域不同于请求指向的资源所在域的HTTP请求. 比如说,我在Web网站A(www.a.com)中通过<img ...

  5. 使用PyQt5自制文件查找工具,并生成EXE文件

    一.工作中,有一个关键词查找工作,查找开发版本中使用的文本,有哪些词语是非法的,一个一个去查太累了,所以想到了用代码来实现.可后来想想,能否做成简单的小工具,大家都可以使用. 于是就着手编写工具.原来 ...

  6. pyqt5 中的addStretch

    一直对addStretch感觉怪怪的,直到看见了下面这段话: addStretch()函数用于在控件按钮间增加伸缩量, 伸缩量的比例为1:1:1:6,意思就是将控件以外的空白地方按设定的比例等分为9份 ...

  7. Linux下的用户和用户组,文件权限:chown和chmod

    如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...

  8. Windows defender怎么才能彻底关闭?

    据不久前的一项测试表明,Windows系统自带的Windows defender软件在所有参与测试的杀毒安全软件中对win10的运行速度影响最大. 而Win10系统的Windows defender会 ...

  9. Linux编译安装GCC

    1. 下载gcc安装包 网址:http://ftp.gnu.org/gnu/gcc/ ,下载对应的安装包,我选择gcc-5.5.0.tar.gz 2. 下载依赖库 一个是mpc,一个是gmp,一个是m ...

  10. 第六章· MySQL索引管理及执行计划

    一.索引介绍 1.什么是索引 1)索引就好比一本书的目录,它能让你更快的找到自己想要的内容. 2)让获取的数据更有目的性,从而提高数据库检索数据的性能. 2.索引类型介绍 1)BTREE:B+树索引 ...