一个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();
}