zoukankan      html  css  js  c++  java
  • java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版)没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服务器端交互,这个我之前没做过,因此接下来的时间里会陆续更 新这一些列的博客,记录学习的点滴。第一篇主要是java读取mysql数据库文件。安装及配置文件稍后会上传到我的百度网盘供大家下载。其他的介绍在网 上都可以找到相关的博客,下面直接给出源代码。

    mysql建立一个名为“vge_whu”的数据库,并在该数据库中新建一个user表。具体信息如下图所示。


    MySQLHelper.java,mySQL操作类,后面陆续完善该类,源码如下:

    1. package edu.whu.vge;  
    2.   
    3. import java.sql.Connection;  
    4. import java.sql.DriverManager;  
    5. import java.sql.PreparedStatement;  
    6. import java.sql.SQLException;  
    7.   
    8. /** 
    9.  *  
    10.  * 项目名称:JavaSQL1    
    11.  * 类名称:DBHelper    
    12.  * 类描述:MySQL数据库操作类    
    13.  * 创建人:Administrator 
    14.  * 创建时间:2014-11-25 下午5:11:11    
    15.  * 修改备注:    
    16.  * @version 
    17.  */  
    18. public class MySQLHelper  
    19. {  
    20.     public static final String url = "jdbc:mysql://127.0.0.1/vge_whu"; //数据库连接  
    21.     public static final String name = "com.mysql.jdbc.Driver";   //程序驱动  
    22.     public static final String user = "root";  //用户名  
    23.     public static final String password = "abc@123"; //密码  
    24.   
    25.     public Connection conn = null;  
    26.     public PreparedStatement pst = null;  
    27.   
    28.     /** 
    29.      *  
    30.      * 创建一个新的实例 DBHelper.    
    31.      *    
    32.      * @param sql: SQL查询语句 
    33.      */  
    34.     public MySQLHelper(String sql)  
    35.     {  
    36.         try  
    37.         {  
    38.             Class.forName(name);// 指定连接类型  
    39.             conn = DriverManager.getConnection(url, user, password);// 获取连接  
    40.             pst = conn.prepareStatement(sql);// 准备执行语句  
    41.         } catch (Exception e)  
    42.         {  
    43.             e.printStackTrace();  
    44.         }  
    45.     }  
    46.   
    47.     /** 
    48.      *  
    49.      * 方法名称: close ; 
    50.      * 方法描述:  关闭数据库连接 ; 
    51.      * 参数 :  
    52.      * 返回类型: void ; 
    53.      * 创建人:James; 
    54.      * 创建时间:2014-11-25 下午7:00:12; 
    55.      * @throws 
    56.      */  
    57.     public void close()  
    58.     {  
    59.         try  
    60.         {  
    61.             this.conn.close();  
    62.             this.pst.close();  
    63.         } catch (SQLException e)  
    64.         {  
    65.             e.printStackTrace();  
    66.         }  
    67.     }  
    68.   
    69. }  

    再写一个java文件来调用MySQLHelper类执行相关操作,暂时只有查询,后面补充新增、删除、更新等操作。

    1. package edu.whu.vge;  
    2.   
    3. import java.sql.*;  
    4.   
    5. /** 
    6.  *  
    7.  * 项目名称:JavaSQL1  
    8.  * 类名称:JDBCTest  
    9.  * 类描述: Java连接MySQL 
    10.  * 测试 创建人:Administrator 
    11.  * 创建时间:2014-11-25 下午5:11:43 
    12.  *  修改备注: 
    13.  *  
    14.  * @version 1.0 
    15.  */  
    16. public class JDBCTest  
    17. {  
    18.     static String sql = null;  
    19.     static MySQLHelper db1 = null;  
    20.     static ResultSet ret = null;  
    21.   
    22.     public static void main(String[] args)  
    23.     {  
    24.         sql = "select * from user";// SQL语句  
    25.         db1 = new MySQLHelper(sql);// 创建DBHelper对象  
    26.         System.out.println("编号--姓名--性别--年龄-------电话-------QQ---------邮箱");  
    27.         try  
    28.         {  
    29.             ret = db1.pst.executeQuery();// 执行语句,得到结果集  
    30.             while (ret.next())  
    31.             {  
    32.                 String uId = ret.getString(1);  
    33.                 String uName = ret.getString(2);  
    34.                 String uSex = ret.getString(3);  
    35.                 String uAge = ret.getString(4);  
    36.                 String uTel = ret.getString(5);  
    37.                 String uQQ = ret.getString(6);  
    38.                 String uMail = ret.getString(7);  
    39.                 System.out.println(uId + " " + uName + " " + uSex + " "  
    40.                         + uAge + " " + uTel + " " + uQQ + " " + uMail);  
    41.             }// 显示数据  
    42.             ret.close();  
    43.             db1.close();// 关闭连接  
    44.         } catch (SQLException e)  
    45.         {  
    46.             e.printStackTrace();  
    47.         }  
    48.     }  
    49.   
    50. }  

    执行结果如下图所示。



    -----------------------------华丽的分割线(2014.11.26)--------------------------------------

    MySQLHelper操作类

    1. package edu.whu.vge;  
    2.   
    3. import java.sql.Connection;  
    4. import java.sql.DriverManager;  
    5. import java.sql.PreparedStatement;  
    6. import java.sql.ResultSet;  
    7. import java.sql.SQLException;  
    8.   
    9. /** 
    10.  *  
    11.  * @项目名称:JavaSQL1 
    12.  * @类名称:MySQLHelper 
    13.  * @类描述:mysql操作类 
    14.  * @创建人:奔跑的鸡丝 
    15.  * @创建时间:2014-11-25 下午8:58:34 
    16.  * @修改备注: 
    17.  * @版本: 
    18.  */  
    19. public class MySQLHelper  
    20. {  
    21.     public static final String url = "jdbc:mysql://127.0.0.1/vge_whu"; // 数据库连接  
    22.     public static final String name = "com.mysql.jdbc.Driver"; // 程序驱动  
    23.     public static final String user = "root"; // 用户名  
    24.     public static final String password = "abc@123"; // 密码  
    25.   
    26.     public Connection connection = null; // 数据库连接  
    27.     public PreparedStatement preparedStatement = null; // 待查询语句描述对象  
    28.   
    29.     /** 
    30.      *  
    31.      * 创建一个新的实例 DBHelper. 
    32.      *  
    33.      * @param sql 
    34.      *            : SQL查询语句 
    35.      */  
    36.     public MySQLHelper()  
    37.     {  
    38.         try  
    39.         {  
    40.             Class.forName(name);// 指定连接类型  
    41.             connection = DriverManager.getConnection(url, user, password);// 获取连接  
    42.         } catch (Exception e)  
    43.         {  
    44.             e.printStackTrace();  
    45.         }  
    46.     }  
    47.   
    48.     /** 
    49.      *  
    50.      * @方法名称: close ; 
    51.      * @方法描述: 关闭数据库 ; 
    52.      * @参数 : 
    53.      * @返回类型: void ; 
    54.      * @创建人:奔跑的鸡丝 ; 
    55.      * @创建时间:2014-11-25 下午8:58:14; 
    56.      * @throws 
    57.      */  
    58.     public void close()  
    59.     {  
    60.         try  
    61.         {  
    62.             this.connection.close();  
    63.             this.preparedStatement.close();  
    64.         } catch (SQLException e)  
    65.         {  
    66.             System.out.println("关闭数据库出现问题!!");  
    67.             e.printStackTrace();  
    68.         }  
    69.     }  
    70.   
    71.     /** 
    72.      *  
    73.      * @方法名称: query ; 
    74.      * @方法描述: 查询操作 ; 
    75.      * @参数 :@param sql:查询操作语句 ; 
    76.      * @返回类型: ResultSet :查询结果数据集; 
    77.      * @创建人:奔跑的鸡丝 ; 
    78.      * @创建时间:2014-11-25 下午8:49:25; 
    79.      * @throws 
    80.      */  
    81.     public ResultSet query(String sql)  
    82.     {  
    83.         ResultSet resultSet = null;  
    84.   
    85.         try  
    86.         {  
    87.             preparedStatement = connection.prepareStatement(sql); // 准备执行语句  
    88.             resultSet = preparedStatement.executeQuery();  
    89.   
    90.         } catch (Exception e)  
    91.         {  
    92.             System.out.println("查询错误,请检查!!");  
    93.             e.printStackTrace();  
    94.         }  
    95.         return resultSet;  
    96.     }  
    97.   
    98.     /** 
    99.      *  
    100.      * @方法名称: executeNonquery ; 
    101.      * @方法描述: 插入、修改、删除等操作 ; 
    102.      * @参数 :@param sql:插入语句 
    103.      * @返回类型: boolean ; 
    104.      * @创建人:奔跑的鸡丝; 
    105.      * @创建时间:2014-11-25 下午8:45:49; 
    106.      * @throws 
    107.      */  
    108.     public boolean executeNonquery(String sql)  
    109.     {  
    110.         boolean flag = false;  
    111.         try  
    112.         {  
    113.             preparedStatement = connection.prepareStatement(sql);  
    114.             preparedStatement.executeUpdate();  
    115.             flag = true;  
    116.   
    117.         } catch (Exception e)  
    118.         {  
    119.             System.out.println("插入数据库时出现错误!!");  
    120.             e.printStackTrace();  
    121.         }  
    122.         return flag;  
    123.     }  
    124.   
    125.     /** 
    126.      *  
    127.      * @方法名称: getCount ; 
    128.      * @方法描述:  获取表记录数 ; 
    129.      * @参数 :@param sql 
    130.      * @参数 :@return  
    131.      * @返回类型: int 记录数; 
    132.      * @创建人:奔跑的鸡丝 ; 
    133.      * @创建时间:2014-11-26 下午2:40:37; 
    134.      * @throws 
    135.      */  
    136.     public int getCount(String sql)  
    137.     {  
    138.         int count=0;  
    139.         try  
    140.         {  
    141.             preparedStatement=connection.prepareStatement(sql);  
    142.             ResultSet resultSet=preparedStatement.executeQuery();  
    143.             resultSet.last();  
    144.             count=resultSet.getRow();  
    145.             resultSet.close();  
    146.               
    147.         } catch (Exception e)  
    148.         {  
    149.             System.out.println("查询总记录数失败!!");  
    150.             e.printStackTrace();  
    151.         }  
    152.         return count;  
    153.     }  
    154. }  


    实例调用:

      1. package edu.whu.vge;  
      2.   
      3. import java.sql.*;  
      4.   
      5. /** 
      6.  *  
      7.  * 项目名称:JavaSQL1 类名称:JDBCTest 类描述: Java连接MySQL 测试 创建人:Administrator 
      8.  * 创建时间:2014-11-25 下午5:11:43 修改备注: 
      9.  *  
      10.  * @version 1.0 
      11.  */  
      12. public class JDBCTest  
      13. {  
      14.   
      15.     static MySQLHelper pMySQLHelper = null;  
      16.   
      17.     public static void main(String[] args)  
      18.     {  
      19.           
      20.         insert();  
      21.         update();  
      22.         delete();  
      23.         query();  
      24.         getCount();  
      25.     }  
      26.   
      27.     /** 
      28.      *  
      29.      * @方法名称: query ; 
      30.      * @方法描述: 查询数据库 ; 
      31.      * @参数 : 
      32.      * @返回类型: void ; 
      33.      * @创建人:奔跑的鸡丝 ; 
      34.      * @创建时间:2014-11-25 下午9:03:00; 
      35.      * @throws 
      36.      */  
      37.     private static void query()  
      38.     {  
      39.         pMySQLHelper = new MySQLHelper();// 创建MySQLHelper对象  
      40.         String sql = "select * from user"; // 查询SQL语句  
      41.         ResultSet pResultSet = null;  
      42.         System.out.println("编号--姓名--性别--年龄-------电话-------QQ---------邮箱");  
      43.         try  
      44.         {  
      45.             pResultSet = pMySQLHelper.query(sql);// 执行语句,得到结果集  
      46.   
      47.             // 显示数据  
      48.             while (pResultSet.next())  
      49.             {  
      50.                 String uId = pResultSet.getString(1);  
      51.                 String uName = pResultSet.getString(2);  
      52.                 String uSex = pResultSet.getString(3);  
      53.                 String uAge = pResultSet.getString(4);  
      54.                 String uTel = pResultSet.getString(5);  
      55.                 String uQQ = pResultSet.getString(6);  
      56.                 String uMail = pResultSet.getString(7);  
      57.                 System.out.println(uId + " " + uName + " " + uSex + " "  
      58.                         + uAge + " " + uTel + " " + uQQ + " " + uMail);  
      59.             }  
      60.             pMySQLHelper.close();  
      61.             pResultSet.close();  
      62.   
      63.         } catch (SQLException e)  
      64.         {  
      65.             e.printStackTrace();  
      66.         }  
      67.     }  
      68.   
      69.     /** 
      70.      *  
      71.      * @方法名称: insert ; 
      72.      * @方法描述: 插入 ; 
      73.      * @参数 : 
      74.      * @返回类型: void ; 
      75.      * @创建人:奔跑的鸡丝 ; 
      76.      * @创建时间:2014-11-25 下午9:40:41; 
      77.      * @throws 
      78.      */  
      79.     private static void insert()  
      80.     {  
      81.         try  
      82.         {  
      83.             pMySQLHelper = new MySQLHelper();  
      84.             String insert = "Insert Into user Values ('2010301610308','老大','男',58,'123456789','123456789','1234@163.com')";  
      85.             if (pMySQLHelper.executeNonquery(insert))  
      86.             {  
      87.                 System.out.println("插入成功!!");  
      88.             }  
      89.             pMySQLHelper.close();  
      90.         } catch (Exception e)  
      91.         {  
      92.             System.out.println("插入出錯!!");  
      93.             e.printStackTrace();  
      94.         }  
      95.   
      96.     }  
      97.   
      98.     /** 
      99.      *  
      100.      * @方法名称: update ; 
      101.      * @方法描述: 修改 ; 
      102.      * @参数 : 
      103.      * @返回类型: void ; 
      104.      * @创建人:奔跑的鸡丝 ; 
      105.      * @创建时间:2014-11-26 下午2:19:14; 
      106.      * @throws 
      107.      */  
      108.     private static void update()  
      109.     {  
      110.         pMySQLHelper = new MySQLHelper();  
      111.         String update = "Update user Set Name='奔跑的鸡丝' Where StudentID='2010301610305'";  
      112.         if (pMySQLHelper.executeNonquery(update))  
      113.         {  
      114.             System.out.println("修改成功!!");  
      115.   
      116.         }  
      117.         pMySQLHelper.close();  
      118.     }  
      119.   
      120.     /** 
      121.      *  
      122.      * @方法名称: delete ; 
      123.      * @方法描述: 删除 ; 
      124.      * @参数 : 
      125.      * @返回类型: void ; 
      126.      * @创建人:奔跑的鸡丝 ; 
      127.      * @创建时间:2014-11-26 下午2:33:40; 
      128.      * @throws 
      129.      */  
      130.     private static void delete()  
      131.     {  
      132.         pMySQLHelper = new MySQLHelper();  
      133.         String delete = "Delete From user Where Name='朱庆'";  
      134.         if (pMySQLHelper.executeNonquery(delete))  
      135.         {  
      136.             System.out.println("删除成功!!");  
      137.   
      138.         }  
      139.         pMySQLHelper.close();  
      140.     }  
      141.   
      142.     private static void getCount()  
      143.     {  
      144.         pMySQLHelper=new MySQLHelper();  
      145.         String getCountString="Select * From user";  
      146.         System.out.println("记录数为:"+pMySQLHelper.getCount(getCountString));  
      147.           
      148.     }  
      149. from: http://blog.csdn.net/giser_whu/article/details/41487213

  • 相关阅读:
    需求分析作业01
    2016年秋季个人阅读计划
    个人总结
    梦断代码读后感03
    进度条16
    我的第一个小系统总结
    进度条15
    eclipse连接SqlServer2008(被它搞得惨兮兮)
    梦断代码读后感02
    Android ViewPager刷新解析
  • 原文地址:https://www.cnblogs.com/GarfieldEr007/p/5342824.html
Copyright © 2011-2022 走看看