helper java_简单SQLHelper(java)

在学习制作jsp网站时,学习写了一份SQLHelper文档(静态调用),内容及其精简,考虑不周之处甚多,不过新手学习还是勉强可以用的。😂

首先,看一下正常JDBC的使用过程.

//导入包

import java.sql.*;

//几个需要用到的字符串

static final String driver = "com.mysql.jdbc.Driver";//第一项固定,第二项是地址和端口,第三项是数据库名

static final String url = "jdbc:mysql://localhost:3306/test";//数据库名和密码

static final String user = "username";static final String password = "password";//第一步:打开驱动

Class.forName(driver);//第二步:打开连接

Connection conn =DriverManager.getConnection(url,user,password);//第三步:创建SQL语句和执行SQL语句

Statement stmt =conn.createStatement();

String sql= "SELECT id FROM Employees";

ResultSet rs=stmt.executeQuery(sql);//第四步:处理返回的结果

while(rs.next()){//获取结果

int id = rs.getInt("id");//处理结果

System.out.print("ID:" +id);

}//第五步:关闭连接

rs.close();

stmt.close();

conn.close();

现在开始,创建我们的SQLHelper。

这里SQLHelper文档为静态方法,直接调用,所以令其无法实例化。

1.首先要导入包,建立类

import java.sql.*;public classSQLHelper {privateSQLHelper()

{

}

}

2.在连接JDBC的时候,我们会用到相对不变的一些字符串

这些字符串为静态的属性。

private static Connection conn=null;private static Statement stm=null;private static String driver="com.mysql.jdbc.Driver";private static String url="jdbc:mysql://localhost:3306/test";private static String user="username";private static String password="password";

如果使用时会有使用不同数据库,或其他设置时,可以写个方法修改这些字符串。例如:public static void seturl(str){url=str;}

3.打开驱动和连接

private staticConnection Getconn(){try{

Class.forName(driver);returnDriverManager.getConnection(url,user,password);

}catch(Exception ex){return null;

}

}

4.创建stm

private staticStatement Getstatement(){

conn=Getconn();if(conn==null)return null;try{returnconn.createStatement();

}catch(SQLException e) {return null;

}

}

5.执行sql语句返回结果

执行查询语句,返回结果集

public staticResultSet ExcueteQuery(String str){

stm=Getstatement();//包含创建conn和stm

ResultSet rs=null;if(stm==null){Close();return rs;}//判断jdbc连接成功与否

try{

rs=stm.executeQuery(str);

}catch(SQLException e) {

rs= null;

Close();//关闭连接的函数,下文写

}return rs;//返回函数结果

}

执行操作语句,返回受影响行数

public static intExcueteNonQuery(String str){

stm=Getstatement();//包含创建conn和stm

int i=0;if(stm==null){Close();return -1;}//判断jdbc连接成功与否

try{

i=stm.executeUpdate(str);

}catch(SQLException e) {

i= -1;

Close();//关闭连接的函数,下文写

}return i;//返回函数结果

}

查询某个数据库的值

public staticObject ExcueteScalar(String str){

stm=Getstatement();

Object obj="null";if(stm==null){Close();returnobj;}try{

ResultSet rs=stm.executeQuery(str);//执行查询语句,返回第一行第一个结果

if(rs!=null){

rs.next();

obj=rs.getObject(1);

}

}catch(SQLException e) {

obj= "null";

Close();

}return obj;//返回结果,函数类型也可以直接设置为String

}

此三个函数为外部类调用的接口方法,也是主要的查询方法,所以这三个方法为公有public类型,其他方法为私有private类型。调用如下:

//查询返回表

ResultSet rs=SQLHelper.ExcuteQuery(sql);//插入、更新、删除数据

SQLHelper.ExcuteNonQuery(sql);//查询某个值

String s=SQLHelper.ExcuteScalar(sql).ToString();

6.关闭连接

private static voidClose(){if(stm!=null){try{

stm.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}if(conn!=null){try{

conn.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

至此,简单的SQLHelper书写完成,它包括了三个接口用于执行SQL语句。(在执行查询时,因为在错误时返回了rs=null,因此外部类在查询时,先要判断一次结果是否为null)

思考: 1.连接不同的数据库,可以添加方法setURL()等修改原有字符串

2.错误提示,可以增加一个属性ErrorMessage,在出现不同异常时,向其中写入,最后提供一个getError();

3.仿照4.5,可以写PreparedStatement,CallableStatement类型的方法

4.多数据库连接,可以修改成实例化的SQLHelper文档,不同的实例连接不同数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值