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

关于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日

    悬赏问题

    • ¥15 Linux操作系统中的,管道通信问题
    • ¥15 请问这张multisim图的原理是什么,这是一个交通灯,是课程要求,明天要进行解析,但是我们组没一个人会,所以急要,今天要
    • ¥15 ansible tower 卡住
    • ¥15 等间距平面螺旋天线方程式
    • ¥15 通过链接访问,显示514或不是私密连接
    • ¥100 系统自动弹窗,键盘一接上就会
    • ¥50 股票交易系统设计(sql语言)
    • ¥15 调制识别中这几个数据集的文献分别是什么?
    • ¥15 请大家看看报错原因,为啥会这样
    • ¥30 Cocos转UWP应用,支付调起后闪退