weixin_53346076 2022-05-26 22:43 采纳率: 100%
浏览 16
已结题

关于idea链接数据库无法链的问题,如何解决?

使用idea来编写一段java程序来实现mysql数据库的可视化界面操作实现增删改查。添加了jdbc外部库后无法正常链接到数据库,idea的jdk版本为14和

jdbc的版本对应。

import java.util.Scanner;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class fun {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int i,j;
        Connection conn;
        Statement stmt;
        ResultSet rs;
        String url = "jdbc:sqlserver://127.0.0.1:3306;DatabaseName=教务管理系统;";
        String sql = "select * from 学生表";
        try {
            // 连接数据库
            conn = DriverManager.getConnection(url, "root", "20021013");
            // 建立Statement对象
            stmt = conn.createStatement();
            /**
             * Statement createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库。
             */
            // 执行数据库查询语句
            rs = stmt.executeQuery(sql);
            /**
             * ResultSet executeQuery(String sql) throws SQLException 执行给定的 SQL
             * 语句,该语句返回单个 ResultSet 对象
             */
            while(true) {
                System.out.println("请选择操作:(1进行查询,2进行修改,3进行添加)");
                j=scanner.nextInt();
                switch(j) {
                    case 1:
                        System.out.println("请输入需要查询的学号");
                        j=scanner.nextInt();
                        sql = "select * from dbo.S where Sno="+j;
                        rs = stmt.executeQuery(sql);
                        while (rs.next()) {
                            int id = rs.getInt("Sno");
                            String name = rs.getString("Sname");
                            int age = rs.getInt("Sage");
                            String sex=rs.getString("Ssex");
                            String dept=rs.getString("Sdept");
                            System.out.println("Sno:" + id + "\tSame:" + name + "\tSage:" + age+"\tSsex:"+sex+"\tSdept:"+dept);
                        }
                        break;
                    case 2:
                        rs.close();
                        System.out.println("请输入需要修改信息的学生学号");
                        j=scanner.nextInt();
                        System.out.println("请输入需要修改的属性(不可以修改学号)");
                        String string1=scanner.next();
                        System.out.println("请输入修改的内容");
                        String string2=scanner.next();
                        String string3="update dbo.S  set "+string1+"='"+string2+"'"+"where Sno="+j;
                        stmt.executeUpdate(string3);
                        System.out.println("数据库更新成功!");
                        break;
                    case 3:
                        System.out.println("请按照顺序输入学号、姓名、年龄、性别、专业(属性之间以空格分隔)");
                        int int1=scanner.nextInt();
                        String string4=scanner.next();
                        int int2=scanner.nextInt();
                        String string5=scanner.next();
                        String string6=scanner.next();
                        stmt.executeUpdate("insert into dbo.S(sno,sname,Sage,ssex,Sdept)" +"values('"+int1+"','"+string4+"','"+int2+"','"+string5+"','"+string6+"')");
                        System.out.println("数据库信息添加成功");
                        break;
                }
                System.out.println("请输入数据进行选择:(1代表结束程序,0代表继续运行程序)");
                i=scanner.nextInt();
                if(i==1)
                    break;
            }
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
        System.out.println("程序结束运行!");
    }
}



运行结果及报错内容

img

为什么不能链接啊,外部库我都安装了,希望能够得到解决办法。

  • 写回答

1条回答 默认 最新

  • 木聪 2022-05-27 08:32
    关注

    没有driver
    在调用DriverManager之前,加上这个
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

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

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 5月26日

悬赏问题

  • ¥70 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳
  • ¥15 海康hlss视频流怎么播放
  • ¥15 Paddleocr:out of memory error on GPU
  • ¥30 51单片机C语言数码管驱动单片机为AT89C52
  • ¥100 只改动本课件的 cal_portfolio_weight_series(decision_date), 跑完本课件。设计一个信息比率尽量高的策略。