怎么用java向数据库中添加和删除数据

怎么用java向数据库中添加和删除数据,第1张

我这有个类,一直用

package comseconddao;

import javalangreflectInvocationTargetException;

import javalangreflectMethod;

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlResultSetMetaData;

import javasqlSQLException;

import javautilArrayList;

import javautilList;

public class JDBCUtilDao {

    private static Connection con = null;

    private static PreparedStatement ps = null;

    private static ResultSet rs = null;

    public static Connection PrintCon() {

        return con;

    }

    public static PreparedStatement PrintPs() {

        return ps;

    }

    public static ResultSet PrintRs() {

        return rs;

    }

    /

      准备驱动

     /

    static {

        try {

            ClassforName("netsourceforgejtdsjdbcDriver");

        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            Systemoutprintln("加载驱动失败!");

            eprintStackTrace();

        }

    }

    public static Connection getConnection() {

        try {

            con = DriverManagergetConnection(

                    "jdbc:jtds:sqlserver://1921686110/sql_second", "sa",

                    "123");

            // Systemoutprintln(con);

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            Systemoutprintln("连接失败!");

            eprintStackTrace();

        }

        return con;

    }

    /

      关闭连接

      

      @param rs

                 结果集对象

      @param ps

                 会话对象

      @param con

                 连接对象

     /

    public static void closeAll(ResultSet rs, PreparedStatement ps,

            Connection con) {

        try {

            if (null != rs) {

                rsclose();

            }

            if (null != ps) {

                psclose();

            }

            if (null != con) {

                conclose();

            }

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        }

    }

    /

      设置参数

      

      @param params

      @param ps

     /

    public static void setParams(List<String> params, PreparedStatement ps) {

        if (params != null) {

            for (int i = 0; i < paramssize(); i++) {

                try {

                    pssetString(i + 1, paramsget(i));

                } catch (SQLException e) {

                    // TODO Auto-generated catch block

                    eprintStackTrace();

                }

            }

        }

    }

    /

      实现增、删、改

      

      @param sql

                 sql语句

      @param params

                 参数

      @return 修改的行数

     /

    public static int doUpdata(String sql, List<String> params) {

        int result = 0;

        try {

            // 判断是否连接 不连接就把数据库连上

            if (null == con || conisClosed()) {

                con = getConnection();

            }

            // 得到会话

            ps = conprepareStatement(sql);

            // 设置参数

            setParams(params, ps);

            // 得到结果,即改变行数

            result = psexecuteUpdate();

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        } finally {

            closeAll(null, ps, con);

        }

        return result;

    }

    /

      查询

      

      @param <T>

      @param sql

      @param params

      @param t

      @return

     /

    public static <T> List<T> qureyAll(String sql, List<String> params,

            Class<T> t) {

        // 用一个集合接受返回的数据

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

        // 判断是否连接

        try {

            if (null == con || conisClosed()) {

                con = getConnection();

            }

            //  *** 作对象

            ps = conprepareStatement(sql);

            // 设置参数

            setParams(params, ps);

            // 返回结果集

            rs = psexecuteQuery();

            // 取出t中的说有方法

            Method[] method = tgetDeclaredMethods();

            // 取出说有列名和列数

            ResultSetMetaData rsmd = rsgetMetaData();

            // 获得列数

            int count = rsmdgetColumnCount();

            // 取出每个列列名放入数组中

            String[] columns = new String[count];

            for (int i = 0; i < columnslength; i++) {

                columns[i] = rsmdgetColumnName(i + 1);

            }

            // 循环结果集

            while (rsnext()) {

                T s = (T) tnewInstance();

                // 第一个循环控制列数

                for (int i = 0; i < columnslength; i++) {

                    // 第二个循环控制方法名

                    for (int j = 0; j < methodlength; j++) {

                        String setName = "set" + columns[i];

                        if (setNameequalsIgnoreCase(method[j]getName())) {// set+列名相同就是这个类得方法名

                            String typeName = rsmdgetColumnTypeName(i + 1);// 得到数据库中列名的类型

                            // int

                            // varchar

                            //Systemoutprintln(typeName);

                            if (typeNameequals("INTEGER")

                                    || typeNameequals("int identity")

                                    || typeNameequals("int")) {

                                method[j]invoke(s, rsgetInt(columns[i]));

                            } else if (typeNameequals("DECIMAL")) {

                                method[j]invoke(s, rsgetDouble(columns[i]));

                            } else if (typeNameequals("VARCHAR2")) {

                                method[j]invoke(s, rsgetString(columns[i]));

                            } else if (typeNameequals("money")) {

                                method[j]invoke(s, rsgetFloat(columns[i]));

                            } else if (typeNameequals("datetime")) {

                                // Systemoutprintln(rsgetTimestamp(columns[i]));

                                method[j]

                                        invoke(s, rsgetTimestamp(columns[i]));

                            } else {

                                method[j]invoke(s, rsgetString(columns[i]));

                            }

                        }

                    }

                }

                listadd(s);

            }

            closeAll(rs, ps, con);

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        } catch (InstantiationException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        } catch (IllegalAccessException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        } catch (IllegalArgumentException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        } catch (InvocationTargetException e) {

            // TODO Auto-generated catch block

            eprintStackTrace();

        }

        return list;

    }

    /

      查询

      

      @param sql

      @param obj

      @return

     /

    public static ResultSet getInfoos(String sql, Object[] temp) {

        ResultSet rs = null;

        try {

            if (con == null || conisClosed()) {

                getConnection();

            }

            ps = conprepareStatement(sql);

            for (int i = 1; i < templength; i++) {

                pssetObject(i, temp[i]);

            }

            rs = psexecuteQuery();

        } catch (SQLException e) {

            eprintStackTrace();

        }

        return rs;

    }

    

    public static void main(String[] args) {

        // JDBCUtilDemo jd = new JDBCUtilDemo();

        // Systemoutprintln(jdgetConnection());

        // if(jdupdateByUserId("8888" )){

        // Systemoutprintln("OK");

        // }else{

        // Systemoutprintln("NO");

        // }

    }

}

 Java连接数据库,要删除指定行的信息,可以使用delete语句,传入某行的参数,示例如下:

public class Update1 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        ClassforName("sunjdbcodbcJdbcOdbcDriver");//加载SQL SERVER数据库

        Connection con = DriverManagergetConnection("jdbc:odbc:tt", "sa", ">

javasqlSQLException: Failed to access a closed resultSet:此语句翻译为:javasqlSQLException包抛出异常(内容为):错误的连接了一个已关闭的结果集对象。根据异常类型推断,你在执行删除 *** 作后,resultset 错误关闭。仔细查看下 resultset 处理语句。

我刚写了一个只有插入的,望采纳

import javasql;

import javautil;

public class TestPre {

public static void main(String[] args) {

int i=0,deptno=0;//i只做while循环使用,deptno是表dept2中的一个属性,类型是int

String dname=null,loc=null;//dname和loc也是表dept2的属性,类型是String

Scanner s=new Scanner(Systemin);

Systemoutprintln("请输入3个参数");

while(i<3){

try{

deptno=snextInt();

i++;

dname=snext();

i++;

loc=snext();

i++;

}catch(InputMismatchException e){

Systemoutprintln("输入的类型不符,退出");

Systemexit(-1);

}

}

Connection conn=null;

PreparedStatement pstmt=null;

try {

ClassforName("commysqljdbcDriver");

conn = DriverManagergetConnection("jdbc:mysql://localhost/mydata"+ "user=root&password=root");

pstmt=connprepareStatement("insert into dept2 values(,,)");

pstmtsetInt(1, deptno);

pstmtsetString(2, dname);

pstmtsetString(3, loc);

pstmtexecuteUpdate();

Systemoutprintln("插入完成");

} catch (ClassNotFoundException e) {

Systemoutprintln("连接数据库不成功,程序退出");

Systemexit(-1);

} catch (SQLException e) {

Systemoutprintln("连接数据库不成功,程序退出");

Systemexit(-1);

}

finally{

try{

if(pstmt!=null){

pstmtclose();

pstmt=null;

}

if(conn!=null){

connclose();

conn=null;

}

}catch(SQLException e){

eprintStackTrace();

}

}

}

}

不用把取到的所有id拼成一个DELETE语句

比如

String sql="SELECT FROM 表名 WHERE ";

String sql2="DELETE FROM 表名 WHERE ";

你把后面的星号里的东西弄成一样的 这样你先执行第一句 然后再执行第二句

前提是你别用联合查询什么的 这样会出问题

import javasql;

public static void main(String[] args){

String username="";

String password="";

Connection con;

Statement statement;

ResultSet rs;

String query,key;

int id;

String url="jdbc:odbc:spamfilter";

try{

ClassforName("sunjdbcodbcJdbcOdbDriver");

}catch(ClassNotFoundException e){

Systemoutprintln("没有找到指定的驱动!");

}

try{

con=DriverManagergetConnection(url,username,password);

statement=concreateStatement();

query="insert into Other1(key)"+"values('观音GG')"

//由于你的id设为primary,so不用再添加id字段

statement=exceuteUpdate(query);

query="select from Other1";

rs=statementexecuteQuery(query);

while(rsnext()){

id=rsgetInt("id");

key=rsgetString("key");

Systemoutprintln("id:"+id);

Systemoutprintln("key:"+key);

}

}

catch(SQLException e){

Systemoutprintln("程序出现异常!");

eprintStackTrace();//打印错误信息

}

finally{

try{

if(rs!=null)rsclose();

if(statement!=null)statementclose();

if(con!=null)conclose();

}

catch(SQLException e){

eprintStackTrace();

}

}

}

}

以上就是关于怎么用java向数据库中添加和删除数据全部的内容,包括:怎么用java向数据库中添加和删除数据、用JAVA怎么删除SQL表格中指定一行的信息、java jdbc 删除数据库表中一列后不能用SQL语句在更新和查询表中其他数据了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10181569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存