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);

}

}

相关文章

安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压缩包。 创建s...
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Windows下的包下...
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员  ...
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、延迟时间和整...