通用增删改查的方式

Posted gnos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通用增删改查的方式相关的知识,希望对你有一定的参考价值。

增、删、改通用方法:

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;
}
 

 

以上是关于通用增删改查的方式的主要内容,如果未能解决你的问题,请参考以下文章

如何用SSM框架写一个增删改查的功能

如何用SSM框架写一个增删改查的功能

关于java 连接数据库实现增删改查的具体功能代码。

WPF如何调用WCF对数据增删改查的服务

JDBC之增删改查的代码实现

上手spring boot项目之spring boot整合mybatis进行增删改查的三种方式。