您的位置:首页 > 编程语言 > Java开发

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

2014-11-25 19:20 806 查看
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(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','1234@163.com')";
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));

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eclipse mysql java
相关文章推荐