1、测试数据库
1.1 数据库数据
1.2 数据库结构
1.3 数据库脚本
DROP TABLE IFEXISTS `school`.`student`;
CREATE TABLE`school`.`student` (
`id` int(11) NOT NULL default '0',
`name` varchar(20) default NULL,
`sex` varchar(10) default NULL,
`age` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDBDEFAULT CHARSET=utf8;
INSERT INTO`student` VALUES ('201201','张三','男','21');
INSERT INTO`student` VALUES ('201202','李四','22');
INSERT INTO`student` VALUES ('201203','王五','女','20');
INSERT INTO`student` VALUES ('201204','赵六','21');
INSERT INTO`student` VALUES ('201205','小红','19');
INSERT INTO`student` VALUES ('201206','小明','22');
2、DBHelper用法
2.1 增加【Add】
【示例代码】
packagecom.hebut.util;
publicclassDBHelperApp{
/**
*增加【Add】
*/
publicstaticvoidmain(String[]args) {
//第一种情况
String sql1="Insert Into student Values ('201208','21')";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Insert Into student Values (?,?,?)";
Object[] obj =newObject[]{"201209","张三","男","21"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
2.2 删除【Del】
【示例代码】
packagecom.hebut.util;
publicclassDBHelperApp{
/**
*删除【Del】
*/
publicstaticvoidmain(String[]args) {
//第一种情况
String sql1="Delete From student Where id='201202'";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Delete From student Where id=? And name=?";
Object[] obj =newObject[]{"201208","张三"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
从图中可以看出id为"201202"和"201208"已经删除。
2.3 修改【Update】
【示例代码】
packagecom.hebut.util;
publicclassDBHelperApp{
/**
*修改【Update】
*/
publicstaticvoidmain(String[]args) {
//第一种情况
String sql1="Update student Set age='27' Where id='201207'";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Update student Set name=? Where id=?";
Object[] obj =newObject[]{"张二","201201"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
备注:后面的操作都以上面数据为基准。
2.4 查询【Query】
【示例代码】
packagecom.hebut.util;
importjava.sql.ResultSet;
publicclassDBHelperApp{
/**
*查询【Query】
*@throwssqlException
*/
publicstaticvoidmain(String[]args)throwssqlException {
//第一种情况
String sql1="Select * From student";
//第一步:查询
ResultSet rs1 = DBHelper.executeQuery(sql1);
//第二步:输出
while(rs1.next()){
System.out.println("姓名:"+rs1.getString(2));
}
//第三步:关闭
DBHelper.free(rs1);
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj =newObject[]{"张三"};
//第一步:查询
ResultSet rs2 = DBHelper.executeQuery(sql2,obj);
//第二步:输出
while(rs2.next()){
System.out.println("学号:"+rs2.getString(1));
}
//第三步:关闭
DBHelper.free(rs2);
}
}
【运行结果】
姓名:张二
姓名:王五
姓名:赵六
姓名:小红
姓名:小明
姓名:张三
姓名:张三
学号:201207
学号:201209
【示例代码】
packagecom.hebut.util;
publicclassDBHelperApp{
/**
*/
publicstaticvoidmain(String[]args) {
//第一种情况
String sql1="Select * From student";
System.out.println(DBHelper.getCount(sql1));
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj =newObject[]{"张三"};
System.out.println(DBHelper.getCount(sql2,obj));
}
}
【运行结果】
7
2
2.6 判断记录存在
【示例代码】
packagecom.hebut.util;
publicclassDBHelperApp{
/**
*判断记录存在
*/
publicstaticvoidmain(String[]args) {
//第一种情况
String sql1="Select * From student";
System.out.println(DBHelper.isExist(sql1));
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj =newObject[]{"张五"};
System.out.println(DBHelper.isExist(sql2,obj));
}
}
【运行结果】
true
false
3、DBHelper代码
packagecom.hebut.util;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
publicfinalclassDBHelper{
publicstaticConnectiongetConnection() {
Connection conn =null;
try{
String driver ="com.MysqL.jdbc.Driver";//数据库驱动
String url ="jdbc:MysqL://127.0.0.1:3306/school";//数据库
String user ="root";//用户名
String password ="hadoop";//密码
Class.forName(driver);//加载数据库驱动
if(null==conn) {
conn = DriverManager.getConnection(url,user,password);
}
}catch(ClassNotFoundException e) {
System.out.println("Sorry,can't find the Driver!");
e.printStackTrace();
}catch(sqlException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}
returnconn;
}
/**
*增删改【Add、Del、Update】
*
*@paramsql
*@returnint
*/
publicstaticintexecuteNonQuery(Stringsql) {
intresult= 0;
Connection conn =null;
Statement stmt =null;
try{
conn =getConnection();
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
}catch(sqlException err) {
err.printStackTrace();
free(null,stmt,conn);
}finally{
free(null,conn);
}
returnresult;
}
/**
*增删改【Add、Delete、Update】
*
*@paramsql
*@paramobj
*@returnint
*/
publicstaticintexecuteNonQuery(Stringsql,Object... obj) {
intresult= 0;
Connection conn =null;
PreparedStatement pstmt =null;
try{
conn =getConnection();
pstmt = conn.prepareStatement(sql);
for(inti= 0; i < obj.length; i++) {
pstmt.setObject(i + 1,obj[i]);
}
result = pstmt.executeUpdate();
}catch(sqlException err) {
err.printStackTrace();
free(null,pstmt,conn);
}
returnresult;
}
/**
*查【Query】
*
*@paramsql
*@returnResultSet
*/
publicstaticResultSetexecuteQuery(Stringsql) {
Connection conn =null;
Statement stmt =null;
ResultSetrs=null;
try{
conn =getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(sqlException err) {
err.printStackTrace();
free(rs,conn);
}
returnrs;
}
/**
*查【Query】
*
*@paramsql
*@paramobj
*@returnResultSet
*/
publicstaticResultSetexecuteQuery(Stringsql,Object... obj) {
Connection conn =null;
PreparedStatement pstmt =null;
ResultSetrs=null;
try{
conn =getConnection();
pstmt = conn.prepareStatement(sql);
for(inti= 0; i < obj.length; i++) {
pstmt.setObject(i + 1,obj[i]);
}
rs = pstmt.executeQuery();
}catch(sqlException err) {
err.printStackTrace();
free(rs,conn);
}
returnrs;
}
/**
*判断记录是否存在
*
*@paramsql
*@returnBoolean
*/
publicstaticBooleanisExist(String sql) {
ResultSetrs=null;
try{
rs =executeQuery(sql);
rs.last();
intcount= rs.getRow();
if(count> 0) {
returntrue;
}else{
returnfalse;
}
}catch(sqlException err) {
err.printStackTrace();
free(rs);
returnfalse;
}finally{
free(rs);
}
}
/**
*判断记录是否存在
*
*@paramsql
*@returnBoolean
*/
publicstaticBooleanisExist(String sql,Object... obj) {
ResultSetrs=null;
try{
rs =executeQuery(sql,obj);
rs.last();
intcount= rs.getRow();
if(count> 0) {
returntrue;
}else{
returnfalse;
}
}catch(sqlException err) {
err.printStackTrace();
free(rs);
returnfalse;
}finally{
free(rs);
}
}
/**
*
*@paramsql
*@returnint
*/
publicstaticintgetCount(Stringsql) {
intresult= 0;
ResultSetrs=null;
try{
rs =executeQuery(sql);
rs.last();
result = rs.getRow();
}catch(sqlException err) {
free(rs);
err.printStackTrace();
}finally{
free(rs);
}
returnresult;
}
/**
*
*@paramsql
*@paramobj
*@returnint
*/
publicstaticintgetCount(Stringsql,Object... obj) {
intresult= 0;
ResultSetrs=null;
try{
rs =executeQuery(sql,obj);
rs.last();
result = rs.getRow();
}catch(sqlException err) {
err.printStackTrace();
}finally{
free(rs);
}
returnresult;
}
/**
*释放【ResultSet】资源
*
*@paramrs
*/
publicstaticvoidfree(ResultSetrs){
try{
if(rs!=null) {
rs.close();
}
}catch(sqlException err) {
err.printStackTrace();
}
}
/**
*释放【Statement】资源
*
*@paramst
*/
publicstaticvoidfree(Statementst) {
try{
if(st!=null) {
st.close();
}
}catch(sqlException err) {
err.printStackTrace();
}
}
/**
*释放【Connection】资源
*
*@paramconn
*/
publicstaticvoidfree(Connectionconn) {
try{
if(conn!=null) {
conn.close();
}
}catch(sqlException err) {
err.printStackTrace();
}
}
/**
*释放所有数据资源
*
*@paramrs
*@paramst
*@paramconn
*/
publicstaticvoidfree(ResultSetrs,Statement st,Connection conn) {
free(rs);
free(st);
free(conn);
}
}