ORM尝试一 总体思路

一 连接数据库

使用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对象。

后续会持续更新。

你可能感兴趣的:(java)