一 连接数据库
使用JDBC连接数据库,代码如下:
private static final String url = "jdbc:mysql://localhost:3306/dbName";
private static final String driverName = "org.gjt.mm.mysql.Driver";
private static DataBaseUtil instance;
private Connection con;
/**
* private constructor
*/
private DataBaseUtil() {
if (con == null) {
try {
Class.forName(driverName).newInstance();
con = DriverManager.getConnection(url, userName, passWord);
if (con != null) {
System.out.println("connect success!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* Get the single instance of this class
*
* @return instance
*/
public static DataBaseUtil getInstance() {
if (instance == null) {
instance = new DataBaseUtil();
}
return instance;
}
DataBaseUtil辅助类使用单例模式,而Connection对象在该类内部才能直接使用。
二 操作数据库的思路
1 建表
利用反射获取类名,成员变量的类型和名称。
根据类名,变量类型和名称,拼接出SQL语句。
2 QUERY
无条件查询,直接使用拼接字符串。
有条件查询,将条件放在包含一个key-value的对象中,再拼接出SQL语句。
填充对象:
根据属性类型,调用resultSet的各种get方法获取属性值,
同样根据属性类型,反射调用对象的setter。
3 UPDATE
传入更新的对象,以及一个包含key-value的对象,拼接出SQL语句。
传入更新的对象,以及包含key-value的对象的数组,拼接出SQL语句。
4 DELETE
直接传入要删除的对象,拼接出SQL语句。
5 INSERT
传入要插入的对象,
根据对象的属性类型,获取到getter,利用反射调用,获取属性值。
获取对象的属性名称(也就是列名)。
拼接SQL语句。
6 存储过程
传入存储过程的名称和参数个数,拼接SQL语句,返回CallableStatement对象。
后续会持续更新。