码迷,mamicode.com
首页 > 其他好文 > 详细

通用增删改查的方式

时间:2020-06-26 16:32:33      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:接收   语句   oid   ++   数据类型   size   count()   ada   col   

增、删、改通用方法:

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> T selectallobj(Class<T> clazz,String sql,Object...args){

Connection connection=null;
PreparedStatement pstm=null;
ResultSet rs=null;

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

try {
//1.连接数据库
connection= JDBCUtill.getConnection();

//2.预编译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();

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

//判断是否有值 ,并打印
while(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();
}
return null;
}
 

 

通用增删改查的方式

标签:接收   语句   oid   ++   数据类型   size   count()   ada   col   

原文地址:https://www.cnblogs.com/gnos/p/13195051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!