java操作数据库的类——SqlHelper(简易版)

一个java操作数据库的类SqlHelper,本例用的是mysql数据库,其实都一样,用别的数据库时候就换一个jar包,import不同的包就行了。

SqlHelper代码:

/**
 * 对数据库操作的类
 */
import java.sql.DriverManager;
import java.sql.ResultSet;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class SqlHelper {
	//定义需要的对象
	Connection ct = null;
	PreparedStatement ps = null;
	ResultSet rs = null;
	String driverName = "com.mysql.jdbc.Driver";
	String url = "jdbc:mysql://localhost:3306/test";
	String user = "root";
	String passwd = "root";
	//构造函数:初始化ct
	public SqlHelper(){
		try{
			//1.加载驱动
			Class.forName(driverName);
			//2.得到连接
			ct = (Connection) DriverManager.getConnection(url, user, passwd);
			System.out.println("**********数据库连接成功!!**********");
		}
		catch (Exception e) {
			System.out.println("**********数据库连接失败!!**********");
			e.printStackTrace();
		}
	}
	//增、删、改
		public boolean exeUpdate(String sql,String paras[]){
			boolean b=true;
			try{
				//3.创建ps
				ps=(PreparedStatement) ct.prepareStatement(sql);
				//4.给?赋值
				for(int i=0;i<paras.length;i++){
					ps.setString(i+1, paras[i]);
				}
				//5.执行
				ps.executeUpdate();
			}
			catch(Exception e){
				b=false;
				e.printStackTrace();
			}
			return b;
		}
		//查询
		public ResultSet query(String sql,String paras[]){
			try {
				//3.创建ps(加上2个参数:ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY
				//是为了可以使用ResultSet.last()、ResultSet.beforeFirst()等方法)
				ps=(PreparedStatement) ct.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
				//4.给?赋值
				for(int i=0;i<paras.length;i++){
					ps.setString(i+1, paras[i]);
				}
				//5.执行
				rs=ps.executeQuery();
			} 
			catch (Exception e) {
				e.printStackTrace();
			}
			return rs;
		}
		//关闭资源方法
		public void close(){
			try{
				if(rs!=null){
					rs.close();
				}
				if(ps!=null){
					ps.close();
				}
				if(ct!=null){
					ct.close();
				}
			}
			catch(Exception e){
				e.printStackTrace();
			}
		}
}

示例:验证登录信息

验证登录信息用户表数据模型

/**
 * 用户表数据模型:用于完成对用户表的各种操作,主要编写项目需要的业务操作
 */
public class UserModel {
	/**
	 * 验证登录用户
	 * @param username 用户名
	 * @param password 密码
	 * @return 返回true或者false
	 */
	public boolean userCheck(String username,String password){
		boolean res = true;//用于判断是否有查询结果
		SqlHelper sh = null;
		try{
			//编写Sql语句并设置paras参数
			String sql="select Username from User where Username=? and Password=?";
			String[] paras={username,password};
			sh=new SqlHelper();
			ResultSet rs=sh.query(sql, paras);
			if(!rs.next()){
				res=false;
			}
		}
		catch(Exception e){
			res=false;
			e.printStackTrace();
		}
		finally{//关闭资源
			sh.close();
		}
		return res;
	}
}

验证登录信息测试代码:(Android版)

if(new UserModel().userCheck(username, password)){//验证登录信息
			Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();		
			startActivity(intent);
			LoginActivity.this.finish();
		}
		else{
			Toast.makeText(LoginActivity.this, "验证信息有误,请重新输入!", Toast.LENGTH_SHORT).show();
		}



posted @ 2013-04-19 13:48  魅惑之眼  阅读(406)  评论(0编辑  收藏  举报