SQLite开发模块
DBHelper(MySQL数据库)
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; importjava.sql.SQLException;
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
2.5 获取查询行数 【示例代码】
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.SQLException; 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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 将XML关联数组传递给XML和从XML传递
- React Native学习(二)
- C++程序中使用Windows系统Native Wifi API的基本教程
- 如何在PostgreSQL中使用通配符删除多个表
- ruby-on-rails – 从Rails的HTML页面生成PDF
- [Swift]LeetCode485. 最大连续1的个数 | Max Consecutive O
- oracle rac 修改private ip
- Java+selenium chrome 常见的问题WebDriverException: unkn
- Swift 如何将数字型字符串转换成String类型 (toInt()方法)
- Cocos2dx 通过Java代码调用C++