zoukankan      html  css  js  c++  java
  • JDBCDAO层数据访问工具类的实现

    private static PreparedStatement pst;
    private static ResultSet rst;

    public static <T> int insert(Connection conn, String sql, Class<T> clz, T vo) throws Exception {
    pst = conn.prepareCall(sql);
    // 为sql设置占位符内容
    String[] split = sql.split("\\(")[1].split("\\)")[0].split(",");
    for (int i = 0; i < split.length; i++) {
    // 通过反射获取字段
    Field f = vo.getClass().getDeclaredField(split[i]);
    // 取消私有封装
    f.setAccessible(true);

    //取得字段对应的属性的值
    Object fvalue = f.get(vo);
    pst.setObject(i + 1, fvalue);

    }
    return pst.executeUpdate();
    }

    public <T> int update(Connection conn,String sql,T vo) throws Exception {
    pst=conn.prepareStatement(sql);

    String[] split = sql.split("SET")[1].split("WHERE")[0].split(",");
    int i=0;
    for ( i = 0; i < split.length; i++) {
    String column = split[i].split("=")[0];
    Field f = vo.getClass().getDeclaredField(column.trim());
    f.setAccessible(true);
    Object fvalue = f.get(vo);
    pst.setObject(i + 1, fvalue);
    }

    [1]表示开始 [0]表示结束//代表中间的内容
    String st = sql.split("WHERE")[1].split("=")[0];

    //st.trim 表示去掉多余空格
    Field declared = vo.getClass().getDeclaredField(st.trim());
    declared.setAccessible(true);
    Object fvalue = declared.get(vo);
    pst.setObject(i + 1, fvalue);
    return pst.executeUpdate();
    }

  • 相关阅读:
    学习git之路--1
    No input file specified. phpStudy nginx报错解决方案
    nginx隐藏tp路由index.php
    tp5命令行
    生成器
    php 解密小程序获取unionid
    根据GUID获取实例
    用SQL将数字转换为中文数字
    TFS无法确定工作区解决方案
    利用SQL语句产生分组序号
  • 原文地址:https://www.cnblogs.com/yhgn/p/10719675.html
Copyright © 2011-2022 走看看