ORM尝试一 总体思路

来源:互联网 发布:php超链接代码 编辑:程序博客网 时间:2024/04/30 00:41

一 连接数据库

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

后续会持续更新。

0 0