最近在学习javaWeb和MySQL数据库,使用了jdbc这个框架操作,发现运行多段不同功能的数据库操作SQL写法非常麻烦,于是我就简单封装下,下面分享给大家
一、首先定义接口 utilDao类
import java.sql.ResultSet;
public interface UtilDao {
/**
* 数据库增删改接口
* @param url SQL语句
* @return 是否成功 0、失败
* 1、成功
*/
int UpdateAddAlterData(String url);
/**
* 数据库查操作
* @param Url SQL语句
* @return ResultSet 由用户解析成不同的数据类型
*/
ResultSet LookData(String Url);
/**
* 关闭数据库连接
*/
void SqlConnectionOver();
}
二、定义实现类utilDaoImpl基础utilDao
import com.guet.andream.info.Constant;
import java.sql.*;
public class UtilDaoImpl implements UtilDao {
private Connection con = null;
private PreparedStatement ps = null;
/**
* 数据库连接
* @param sql SQL语句
*/
private void SqlConnection(String sql) {
System.out.println("SQL: "+sql);
try {
Class.forName(Constant.DRIVER);
con = DriverManager.getConnection(Constant.UEL, Constant.USER, Constant.PASSWORD);
ps = con.prepareStatement(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 数据库关闭
*/
public void SqlConnectionOver(){
try {
con.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 实现增删改
* @param url SQL语句
* @return 是否成功 0、失败 1、成功
*/
public int UpdateAddAlterData(String url) {
SqlConnection(url);
try {
return ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
SqlConnectionOver();
}
return 0;
}
/**
* 数据查询
* @param Url SQL语句
* @return ResultSet
*/
public ResultSet LookData(String Url) {
SqlConnection(Url);
ResultSet rs=null;
try {
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
三、下面调用
public class UserDaoImpl implements UserDao {
private ResultSet rs = null;
private UtilDao utilDao=new UtilDaoImpl();
public User LoginUserDao(String url) {
User user=null;
try {
rs=utilDao.LookData(url);
while (rs.next()){
user=new User();
user.setId(rs.getInt("id"));
user.setPhone(rs.getString("phone"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
utilDao.SqlConnectionOver();//操作完关闭数据库
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
}