三、封装工具类DBUtils、DateUtils
把以下会重复写的代码封装:
3.1 封装货期连接、释放资源两个方法
- 提供public static Connection getConnection(){}方法。
- 提供public static void closeAll(Connection conn,Statement sm,ResultSet rs){}方法。
3.2 跨平台方案
以下方框中的代码不直接写死:
工具类实现:
- 新建db.properties文件
首先在src->new->Resource Bundle新建一个属性文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3308/companydb?useUnicode=true&characterEncoding=utf8
user=root
password=123456
- 在刚刚新建的DBUtils类中添加如下代码:
- Map集合:存储元素是成对出现的,Map集合的键是唯一的,每个键最多只能映射到一个值。
3.3 DBUtils
运行结构报错:
给配置文件路径加上/,再次运行成功:
public class DBUtils{private static final Properties PROPERTIES = new Properties();static{InputStream is = DBUtils.class.getResourceAsStream("/db.properties");//给个属性文件的路径PROPERTIES.load(is);Class.forName(PROPERTIES.getProperties("driver")); }public static Connection getConnection(){Connection conn = null;conn = DriverManager.getConnection(PROPERTIES.getProperties("url"),PROPERTIES.getProperties("user"),PROPERTIES.getProperties("password"));return conn;}public static void CloseAll(Connection connection ,PreparedStatement preparedStatement,ResultSet resultSet){if(connection!=null){connection.close();}if(preparedStatement!=null){preparedStetement.close();}if(resultSet!=null){resultSet.close();}}
}
3.4 DateUtils
当表中的列出现日期类型时,为了把String类型的数据插入数据库,把java.util.Date的数据转为java.sql.Date类型,需要用到日期转换
public class DateUtils{public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");public static java.util.Date StrToUtil(String str){java.util.Date date = null;date = sdf.parse(str);return date; }public static String UtilToStr(java.util.Date date){String str = null;str = sdf.format(date);return str;}public static java.sql.Date UtilToSql(java.util.Date date){return new java.sql.Date(date.getTime());}
}