插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服务器端交互,这个我之前没做过,因此接下来的时间里会陆续更新这一些列的博客,记录学习的点滴。第一篇主要是java读取mysql数据库文件。安装及配置文件稍后会上传到我的百度网盘供大家下载。其他的介绍在网上都可以找到相关的博客,下面直接给出源代码。
mysql建立一个名为“vge_whu”的数据库,并在该数据库中新建一个user表。具体信息如下图所示。
MySQLHelper.java,mySQL操作类,后面陆续完善该类,源码如下:
package edu.whu.vge; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; /** * * 项目名称:JavaSQL1 * 类名称:DBHelper * 类描述:MySQL数据库操作类 * 创建人:Administrator * 创建时间:2014-11-25 下午5:11:11 * 修改备注: * @version */ public class MySQLHelper { public static final String url = "jdbc:mysql://127.0.0.1/vge_whu"; //数据库连接 public static final String name = "com.mysql.jdbc.Driver"; //程序驱动 public static final String user = "root"; //用户名 public static final String password = "abc@123"; //密码 public Connection conn = null; public PreparedStatement pst = null; /** * * 创建一个新的实例 DBHelper. * * @param sql: SQL查询语句 */ public MySQLHelper(String sql) { try { Class.forName(name);// 指定连接类型 conn = DriverManager.getConnection(url, user, password);// 获取连接 pst = conn.prepareStatement(sql);// 准备执行语句 } catch (Exception e) { e.printStackTrace(); } } /** * * 方法名称: close ; * 方法描述: 关闭数据库连接 ; * 参数 : * 返回类型: void ; * 创建人:James; * 创建时间:2014-11-25 下午7:00:12; * @throws */ public void close() { try { this.conn.close(); this.pst.close(); } catch (SQLException e) { e.printStackTrace(); } } }再写一个java文件来调用MySQLHelper类执行相关操作,暂时只有查询,后面补充新增、删除、更新等操作。
package edu.whu.vge; import java.sql.*; /** * * 项目名称:JavaSQL1 * 类名称:JDBCTest * 类描述: Java连接MySQL * 测试 创建人:Administrator * 创建时间:2014-11-25 下午5:11:43 * 修改备注: * * @version 1.0 */ public class JDBCTest { static String sql = null; static MySQLHelper db1 = null; static ResultSet ret = null; public static void main(String[] args) { sql = "select * from user";// SQL语句 db1 = new MySQLHelper(sql);// 创建DBHelper对象 System.out.println("编号--姓名--性别--年龄-------电话-------QQ---------邮箱"); try { ret = db1.pst.executeQuery();// 执行语句,得到结果集 while (ret.next()) { String uId = ret.getString(1); String uName = ret.getString(2); String uSex = ret.getString(3); String uAge = ret.getString(4); String uTel = ret.getString(5); String uQQ = ret.getString(6); String uMail = ret.getString(7); System.out.println(uId + "\t" + uName + "\t" + uSex + "\t" + uAge + "\t" + uTel + "\t" + uQQ + "\t" + uMail); }// 显示数据 ret.close(); db1.close();// 关闭连接 } catch (SQLException e) { e.printStackTrace(); } } }执行结果如下图所示。
-----------------------------华丽的分割线(2014.11.26)--------------------------------------
MySQLHelper操作类
package edu.whu.vge; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * * @项目名称:JavaSQL1 * @类名称:MySQLHelper * @类描述:mysql操作类 * @创建人:奔跑的鸡丝 * @创建时间:2014-11-25 下午8:58:34 * @修改备注: * @版本: */ public class MySQLHelper { public static final String url = "jdbc:mysql://127.0.0.1/vge_whu"; // 数据库连接 public static final String name = "com.mysql.jdbc.Driver"; // 程序驱动 public static final String user = "root"; // 用户名 public static final String password = "abc@123"; // 密码 public Connection connection = null; // 数据库连接 public PreparedStatement preparedStatement = null; // 待查询语句描述对象 /** * * 创建一个新的实例 DBHelper. * * @param sql * : SQL查询语句 */ public MySQLHelper() { try { Class.forName(name);// 指定连接类型 connection = DriverManager.getConnection(url, user, password);// 获取连接 } catch (Exception e) { e.printStackTrace(); } } /** * * @方法名称: close ; * @方法描述: 关闭数据库 ; * @参数 : * @返回类型: void ; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-25 下午8:58:14; * @throws */ public void close() { try { this.connection.close(); this.preparedStatement.close(); } catch (SQLException e) { System.out.println("关闭数据库出现问题!!"); e.printStackTrace(); } } /** * * @方法名称: query ; * @方法描述: 查询操作 ; * @参数 :@param sql:查询操作语句 ; * @返回类型: ResultSet :查询结果数据集; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-25 下午8:49:25; * @throws */ public ResultSet query(String sql) { ResultSet resultSet = null; try { preparedStatement = connection.prepareStatement(sql); // 准备执行语句 resultSet = preparedStatement.executeQuery(); } catch (Exception e) { System.out.println("查询错误,请检查!!"); e.printStackTrace(); } return resultSet; } /** * * @方法名称: executeNonquery ; * @方法描述: 插入、修改、删除等操作 ; * @参数 :@param sql:插入语句 * @返回类型: boolean ; * @创建人:奔跑的鸡丝; * @创建时间:2014-11-25 下午8:45:49; * @throws */ public boolean executeNonquery(String sql) { boolean flag = false; try { preparedStatement = connection.prepareStatement(sql); preparedStatement.executeUpdate(); flag = true; } catch (Exception e) { System.out.println("插入数据库时出现错误!!"); e.printStackTrace(); } return flag; } /** * * @方法名称: getCount ; * @方法描述: 获取表记录数 ; * @参数 :@param sql * @参数 :@return * @返回类型: int 记录数; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-26 下午2:40:37; * @throws */ public int getCount(String sql) { int count=0; try { preparedStatement=connection.prepareStatement(sql); ResultSet resultSet=preparedStatement.executeQuery(); resultSet.last(); count=resultSet.getRow(); resultSet.close(); } catch (Exception e) { System.out.println("查询总记录数失败!!"); e.printStackTrace(); } return count; } }
package edu.whu.vge; import java.sql.*; /** * * 项目名称:JavaSQL1 类名称:JDBCTest 类描述: Java连接MySQL 测试 创建人:Administrator * 创建时间:2014-11-25 下午5:11:43 修改备注: * * @version 1.0 */ public class JDBCTest { static MySQLHelper pMySQLHelper = null; public static void main(String[] args) { insert(); update(); delete(); query(); getCount(); } /** * * @方法名称: query ; * @方法描述: 查询数据库 ; * @参数 : * @返回类型: void ; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-25 下午9:03:00; * @throws */ private static void query() { pMySQLHelper = new MySQLHelper();// 创建MySQLHelper对象 String sql = "select * from user"; // 查询SQL语句 ResultSet pResultSet = null; System.out.println("编号--姓名--性别--年龄-------电话-------QQ---------邮箱"); try { pResultSet = pMySQLHelper.query(sql);// 执行语句,得到结果集 // 显示数据 while (pResultSet.next()) { String uId = pResultSet.getString(1); String uName = pResultSet.getString(2); String uSex = pResultSet.getString(3); String uAge = pResultSet.getString(4); String uTel = pResultSet.getString(5); String uQQ = pResultSet.getString(6); String uMail = pResultSet.getString(7); System.out.println(uId + "\t" + uName + "\t" + uSex + "\t" + uAge + "\t" + uTel + "\t" + uQQ + "\t" + uMail); } pMySQLHelper.close(); pResultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } /** * * @方法名称: insert ; * @方法描述: 插入 ; * @参数 : * @返回类型: void ; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-25 下午9:40:41; * @throws */ private static void insert() { try { pMySQLHelper = new MySQLHelper(); String insert = "Insert Into user Values ('2010301610308','老大','男',58,'123456789','123456789','[email protected]')"; if (pMySQLHelper.executeNonquery(insert)) { System.out.println("插入成功!!"); } pMySQLHelper.close(); } catch (Exception e) { System.out.println("插入出錯!!"); e.printStackTrace(); } } /** * * @方法名称: update ; * @方法描述: 修改 ; * @参数 : * @返回类型: void ; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-26 下午2:19:14; * @throws */ private static void update() { pMySQLHelper = new MySQLHelper(); String update = "Update user Set Name='奔跑的鸡丝' Where StudentID='2010301610305'"; if (pMySQLHelper.executeNonquery(update)) { System.out.println("修改成功!!"); } pMySQLHelper.close(); } /** * * @方法名称: delete ; * @方法描述: 删除 ; * @参数 : * @返回类型: void ; * @创建人:奔跑的鸡丝 ; * @创建时间:2014-11-26 下午2:33:40; * @throws */ private static void delete() { pMySQLHelper = new MySQLHelper(); String delete = "Delete From user Where Name='朱庆'"; if (pMySQLHelper.executeNonquery(delete)) { System.out.println("删除成功!!"); } pMySQLHelper.close(); } private static void getCount() { pMySQLHelper=new MySQLHelper(); String getCountString="Select * From user"; System.out.println("记录数为:"+pMySQLHelper.getCount(getCountString)); } }