实现DAO模式的步骤
- 创建实体类包Entity
- 创建DAO包(DAO包中包括实际需要的接口和对应的实现类)
- 创建业务层包Manager
使用JDBC的步骤
- 连接数据库
- 为数据库传递查询和更新指令。
- 处理数据库响应并返回的结果。
- 连接数据库所需条件
- 将连接数据库所需的Jar包导入到项目 (右击项目名>properties>选中Libraies栏>点击Add JARS>找到导入的驱动Jar包)
- 连接数据库之前需要先配置好datebase.properties文件 (配置文件(datebase.properties)中需要的基本参数)
配置文件中的基本参数
driver:com.mysql.jdbc.Driver (连接数据库的驱动) [连接不同的数据库需要不同的驱动]
url:jdbc:mysql://localhost:3306/需要连接数据库的名称 (数据库的地址)
username:root (数据库的用户名) [用户名和密码与你所连接的数据库一致]
password:root (数据库的密码)
这是一个工具类,包括了得到连接对象的方法,关闭资源,执行sql语句的方法,配合DAO包中的实现类使用
public class BaseDao {
private static String driver;//驱动
private static String url;//配置文件路径
private static String username;//数据库的账户
private static String password;//数据库密码
//类加载器
static{
Properties pro=new Properties();
//读取配置文件的类
InputStream in=BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
try {
//读取配置文件中的信息
pro.load(in);
driver=pro.getProperty("driver");
url=pro.getProperty("url");
username=pro.getProperty("username");
password=pro.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//得到连接对象的方法
public Connection getConnection(){
Connection conn=null;
//加载驱动
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//关闭资源的方法
public void closeAll(Connection conn,Statement state,ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(state!=null){
state.close();
}
if(rs!=null){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//通用的执行方法
public int execute(String sql,Object[] params){
PreparedStatement pstmt=null;
int num=0;
Connection conn=this.getConnection();
try {
pstmt=conn.prepareStatement(sql);
if(params!=null){
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1, params[i]);
}
}
//执行sql语句
num=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeAll(conn,pstmt,null);
}
return num;
}
}
2.根据需求执行你所需要的sql语句
3.对返回的结果进行处理