瓷瓷的可可 2022-06-25 18:31 采纳率: 100%
浏览 16
已结题

数据库内容输出有问题怎么解决

为什么代码一可以运行,代码二却不行
代码一
java
import java.sql.Connection;
import java.sql.DriverManager;
//import java.sql.Statement;
import java.util.ArrayList;
import com.mysql.jdbc.Statement;
import java.sql.ResultSet;
//import java.sql.SQLException;

/**
 * 
 * @author 
 *
 */
public class sql {
    ArrayList<Book>  tushu=new ArrayList<>();
     ArrayList<CD>  b=new ArrayList<>();
     ArrayList<Picture>  c=new ArrayList<>();
        Connection con=null;
        Statement st=null;
    public static void main(String[] args) throws Exception  {
        // TODO Auto-generated method stub
        ResultSet rs=null;
        java.sql.Statement st=null;
        Connection con=null;
        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chengxusheji?useSSL=false","root","03579631");
        st= con.createStatement();
        String sql="select * from a";
        rs=st.executeQuery(sql);
        while(rs.next()) {
             System.out.print(rs.getString(1)+"\t");
             System.out.print(rs.getString(2)+"\t");
             System.out.print(rs.getString(3)+"\t");
             System.out.print(rs.getString(4)+"\t");
             System.out.print(rs.getString(5)+"\t");
             System.out.print(rs.getString(6)+"\t");
             System.out.print(rs.getInt(7)+"\t");
             System.out.print("\n");
         }
    }
}
代码二
java    
import java.util.ArrayList;
import java.util.Scanner;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
//import java.sql.Statement;
import com.mysql.jdbc.Statement;
import java.sql.ResultSet;
public class KSone {
    Scanner ad=new Scanner(System.in);
    ArrayList<Book>  a=new ArrayList<>();
     ArrayList<CD>  b=new ArrayList<>();
     ArrayList<Picture>  c=new ArrayList<>();
     /*
      * 
      */
     PreparedStatement  ps1=null;
     PreparedStatement  ps2=null;
     PreparedStatement  ps3=null;
     String sql="insert into a values(?,?,?,?,?,?,?)";
     String sql2="insert into b values(?,?,?,?,?,?,?)";
     String sql3="insert into c values(?,?,?,?,?,?,?)";
         /*
          * 
          */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        Scanner ad=new Scanner(System.in);
        KSone p=new KSone();
        /*
         * 数据库定义
         */
         Class.forName("com.mysql.jdbc.Driver");
         Connection con=null;
         PreparedStatement  ps1=null;
         PreparedStatement  ps2=null;
         PreparedStatement  ps3=null;
         con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chengxusheji?useSSL=false","root","03579631");
         String sql="insert into a values(?,?,?,?,?,?,?)";
         String sql2="insert into b values(?,?,?,?,?,?,?)";
         String sql3="insert into c values(?,?,?,?,?,?,?)";    
         ps1=con.prepareStatement(sql);
         ps2=con.prepareStatement(sql2);
         ps3=con.prepareStatement(sql3);
        /*
         * 
         */
         while(true) {
         System.out.println("***********媒体库管理系统*************");
        System.out.println("\t1.添加物品");
        System.out.println("\t2.查询物品");
        System.out.println("\t3.显示物品库");
        System.out.println("\t4.编辑物品");
        System.out.println("\t5.删除物品");
        System.out.println("\t6.统计信息");
        System.out.println("\t7.物品存盘");
        System.out.println("\t8.读出物品");
        System.out.println("**********************************");    
        int s=ad.nextInt();
        switch (s) {
        case 1:
            p.function1();
            break;
        case 2:
            p.function2();
            break;
        case 3:
            p.function3();
            break;
        case 4:
            p.function4();
            break;
        case 5:
            p.function5();
            break;
        case 6:
            p.function6();
            break;
        case 7:
            p.function7();
            break;
        }
    }
    }
//
........
public void function8() throws Exception {
      //
       ResultSet rs=null;
        java.sql.Statement st=null;
        Connection con=null;
        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chengxusheji?useSSL=false","root","03579631");
        st= con.createStatement();
        String sql="select * from a";
        rs=st.executeQuery(sql);
        //
        ResultSet rs2=null;
        java.sql.Statement st2=null;
        st2= con.createStatement();
        String sql2="select * from b";
        rs2=st2.executeQuery(sql2);
        //
        ResultSet rs3=null;
        java.sql.Statement st3=null;
        st3= con.createStatement();
        String sql3="select * from c";
        rs3=st3.executeQuery(sql3);
        //
        while(rs.next()) {
             System.out.print(rs.getString(1)+"\t");
             System.out.print(rs.getString(2)+"\t");
             System.out.print(rs.getString(3)+"\t");
             System.out.print(rs.getString(4)+"\t");
             System.out.print(rs.getString(5)+"\t");
             System.out.print(rs.getString(6)+"\t");
             System.out.print(rs.getInt(7)+"\t");
             System.out.print("\n");
         }
         if (rs != null) {
             rs.close();
         }
         if (st != null) {
         st.close();
         }
        //
        while(rs2.next()) {
             System.out.print(rs2.getString(1)+"\t");
             System.out.print(rs2.getString(2)+"\t");
             System.out.print(rs2.getString(3)+"\t");
             System.out.print(rs2.getString(4)+"\t");
             System.out.print(rs2.getString(5)+"\t");
             System.out.print(rs2.getString(6)+"\t");
             System.out.print(rs2.getString(7)+"\t");
             System.out.print("\n");
         }
         if (rs2 != null) {
             rs2.close();
         }
         if (st2 != null) {
         st2.close();
         }
        //
        while(rs3.next()) {
             System.out.print(rs3.getString(1)+"\t");
             System.out.print(rs3.getString(2)+"\t");
             System.out.print(rs3.getString(3)+"\t");
             System.out.print(rs3.getString(4)+"\t");
             System.out.print(rs3.getString(5)+"\t");
             System.out.print(rs3.getInt(6)+"\t");
             System.out.print(rs3.getInt(7)+"\t");
             System.out.print("\n");
         }
         if (rs3 != null) {
             rs3.close();
         }
         if (st3 != null) {
         st3.close();
         }
         if (con != null) {
         con.close();
         }
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 一头小山猪 一头小山猪(个人IP)官方账号 2022-06-26 07:01
    关注

    你的代码二中使用的是PreparedStatement,这个对象在初始化时已经包含了sql语句,你在使用前需要先通过setXXX将问号补全(不然程序也不知道该插入什么),下标从1开始。
    还有就是对于PreparedStatement,在执行时要调用的是无参方法,query和update等等都一样,含参方法是从Statement接口中来的,不要去使用。
    有帮助请采纳,还有不懂的可以继续追问~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月4日
  • 已采纳回答 6月26日
  • 创建了问题 6月25日

悬赏问题

  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了