• 通用增删改查的方式


    增、删、改通用方法:

    public static void updateobj(String sql,Object...args){
    
            Connection connection=null;
            PreparedStatement pstm=null;
    
            try{
    
            connection=  JDBCUtill.getConnection();
    
            pstm=connection.prepareStatement(sql);
    
            for(int i=0;i<args.length;i++) {
                pstm.setObject((i + 1), args[i]);
            }
              //执行操作
            pstm.executeUpdate();
    
            } catch (Exception e) {
    
                e.printStackTrace();
            }finally{
                //关闭
                JDBCUtill.colseResource(pstm,connection);
            }
    
        }

    通用查询一组数据的方法:

    //Class<T>clazz:返回的值得类型
        //sql SQL语句返回值
        //object...args  动态可变参数
    
        public static <T> T selectobj(Class<T> clazz,String sql,Object...args){
    
            Connection connection=null;
            PreparedStatement pstm=null;
            ResultSet rs=null;
    
            try{
                //连接数据库
                connection=  JDBCUtill.getConnection();
    
                pstm=connection.prepareStatement(sql);
    
                //填充占位符
                for(int i=0;i<args.length;i++) {
                    pstm.setObject((i + 1), args[i]);
                }
                //执行操作
                rs=pstm.executeQuery();
    
                //创建一个元数据类型接收返回值
                ResultSetMetaData metaData=rs.getMetaData();
    
                //获取数据表中的字段数(列数)
                int count=metaData.getColumnCount();
    
                T t=clazz.newInstance();  //等同于 User user =new User;
    
                //判断是否有值,然后打印
                if(rs.next()){
                    for(int i=0;i<count;i++){
                        //获取对应的字段的值
                        Object value=rs.getObject((i+1));
                        //获取到对应字段的别名
                        String label=metaData.getColumnLabel((i+1));
                        //获取到对应的字段
                        Field field = clazz.getDeclaredField(label);
                        //设置可以自己设置值得权限
                        field.setAccessible(true);
                        //将值装配给对象
                        field.set(t,value);
                    }
                    return t;
                    }
    
            } catch (Exception e) {
    
                e.printStackTrace();
            }finally {
    //关闭 JDBCUtill.colseResource2(rs,pstm,connection); }
    return null; }

    通用查询所有数据的方法:

    /**
    * 查询多组数据的方法
    */
    //Class<T>clazz:返回的值得类型
    public static <T> List<T> selectallobj(Class<T> clazz, String sql, Object...args){
    Connection connection=null;
    PreparedStatement pstm=null;
    ResultSet rs=null;
    try{
    //连接数据库
    connection= JDBCUtill.getConnection();
    //预编译sql
    pstm=connection.prepareStatement(sql);

    //3.填充占位符
    for (int i=0; i<args.length;i++){
    pstm.setObject((i+1),args[i]);
    }
    //4.执行操作
    rs = pstm.executeQuery();

    //创建一个与数据并接收返回值
    ResultSetMetaData metaData=rs.getMetaData();

    //获取数据表中的列数
    int count =metaData.getColumnCount();

    ArrayList<T> list = new ArrayList<T>();

    //判断是否有值 ,并打印
    while(rs.next()){

    T t=clazz.newInstance(); //等同于 User user =new User;

    for (int i=0; i<count;i++){
    //获取对应字段的值
    Object value=rs.getObject((i+1));
    //获取对应字段的别名
    String label=metaData.getColumnLabel((i+1));
    //获取到对应的字段
    Field field=clazz.getDeclaredField(label);
    //设置可以自己设置值得权限
    field.setAccessible(true);
    //将值装配给对象
    field.set(t,value);
    }
    list.add(t);
    }
    return list;
    }catch (Exception e) {
    e.printStackTrace();
    }finally{
    //关闭
    JDBCUtill.colseResource2(rs,pstm,connection);
    }
    return null;
    }
    public class TestSelectAll {
        public static void main(String[] args) {
            String sql="SELECT *FROM USER ";
            List <User> users=TestCurd.selectallobj(User.class,sql);
              for(User user:users){
                  System.out.println(user.toString());
              }
        }
    }
  • 相关阅读:
    javascript基础学习(三)
    javascript基础学习(二)
    javascript基础学习(一)
    php base64_encode()函数
    php fsockopen()
    php parse_url()函数
    SPL 文件处理
    CSS position的absolute和relative的解析[转]
    HTML demo
    php PDO setFetchMode
  • 原文地址:https://www.cnblogs.com/gnos/p/13195051.html
Copyright © 2020-2023  润新知