DAO开发模式
Database Access Object 数据库访问对象
把对数据库进行的JDBC操作(增、删、改、查) 都放在一个类中,用不同的方法分别来完成增、删、改、查。
一张数据库表做一个类 例如 student表 ----> StudentDao StudentDaoImpl
数据库表----------------------实体类(JavaBean)
数据库中列 ------------------------------------------ 实体类的属性
数据库中的一条数据 ---------------------------- 实体类的一个对象
项目概述图:
数据库示意图:
一、导包
- 在工程中创建libs文件夹
- 将所需要的jar包粘贴到libs
- 然后右键该jar包build path–>add build path
二、所需类及文件
1、把字符串转日期的工具类DateUtil
package com.henu.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private DateUtil() {
}
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 字符串转日期
public static Date stringToDate(String str) {
Date date = null;
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static String dateToString(Date date) {
return sdf.format(date);
}
public static java.util.Date stringToDate(java.util.Date huigui1) {
return null;
}
}
2、注册启动获取数据库连接的JDBCUtils工具类
package com.henu.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
public class JDBCUtils {
private static final String driverClass;
private static final String url;// 指的是数据库名称也就是说第三个'/'代表 'localhost:3306/'
private static final String username;
private static final String password;
// 用static代码块是为了率先加载且只加载一次
static {
// 用ResourceBundle将db.properties传入
ResourceBundle rb = ResourceBundle.getBundle("db");
driverClass = rb.getString("driver_class");
url = rb.getString("url");
username = rb.getString("username");
password = rb.getString("password");
try {
// 1.注册驱动
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 2.获取连接
public static Connection getConnnection() {
try {
// DriverManger借助 ServiceLoader 找到驱动 并注册
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
// 3.关闭资源
public static void closeAll(ResultSet rs, Statement st, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (