代码改变世界

java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

2016-03-31 21:18  GarfieldEr007  阅读(616)  评论(0编辑  收藏  举报

插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(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 + "\t" + uName + "\t" + uSex + "\t"  
  40.                         + uAge + "\t" + uTel + "\t" + uQQ + "\t" + 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 + "\t" + uName + "\t" + uSex + "\t"  
    58.                         + uAge + "\t" + uTel + "\t" + uQQ + "\t" + 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