ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 步骤1:DBUtil DBUtil:数据库工具类,这个类的作用是初始化驱动,并且提供一个getConnection用于获取连接。 在后续的所有DAO中,当需要获取连接的时候,都采用这种方式进行。 数据库连接的参数,如数据库名称,账号密码,编码方式等都设计在属性上,便于统一修改,降低维护成本。 ``` package com.dodoke.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { static String ip = "127.0.0.1"; static int port = 3306; static String database = "tmall_j2ee"; static String encoding = "UTF-8"; static String loginName = "root"; static String password = "123456"; static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", ip, port, database, encoding); return DriverManager.getConnection(url, loginName, password); } public static void main(String[] args) throws SQLException { System.out.println(getConnection()); } } ``` # 步骤2:DateUtil DateUtil这个日期工具类主要是用于`java.util.Date`类与`java.sql.Timestamp` 类的互相转换。 因为在实体类中日期类型的属性,使用的都是`java.util.Date`类。 而为了在MySQL中的日期格式里保存时间信息,必须使用datetime类型的字段,而jdbc要获取datetime类型字段的信息,需要采用`java.sql.Timestamp`来获取,否则只会保留日期信息,而丢失时间信息。 ``` package com.dodoke.util; public class DateUtil { public static java.sql.Timestamp d2t(java.util.Date d) { if (null == d) return null; return new java.sql.Timestamp(d.getTime()); } public static java.util.Date t2d(java.sql.Timestamp t) { if (null == t) return null; return new java.util.Date(t.getTime()); } } ```