临近毕业,用java做了个学生信息管理系统,需要用到sql数据库,请问怎么连接,急用,谢谢各位

说实话,这代码我以前在系统部待的时候见过不少,写法挺典型的。
你看这MssqlConnTest类,直接把数据库连接用全局变量dbConn存着,这其实有点不安全,特别是个别项目用sa这种默认账号密码,风险还是挺高的。

有意思的是,Class.forName(driverName)这句,以前老版本JDBC驱动可能真得这么干,现在新版本的驱动可能已经自动注册了,但写在这里总比到处注册驱动强。
不过这行代码会抛出异常,如果驱动包没装好,比如某次我帮隔壁组调试,发现就是忘了加这个驱动jar,直接ClassNotFoundException。

看这getConnection()方法,返回null的时候没做额外处理。
比如我之前接手过一个老项目,发现某个报表挂了,一查就是这函数返回null没处理,导致整个应用卡死在那儿。
所以现在写这类方法,我一般会加个日志,或者直接抛出自定义异常,比如new SQLException("连接获取失败")。

main方法里,你创建MssqlConnTest对象然后直接用,这有点耦合。
我以前更倾向于把数据库操作单独抽成工具类,比如DBUtils那种。
这样用的时候就是DBConnUtil.getConnection(),代码看起来更干净。
而且如果测试环境用不同的数据库,换配置就行,不用改代码。

还有select top 1 from DOI这个SQL,我上次碰到类似问题,是表名大小写敏感。
这"DOI"表名在SQL Server上可能得写成[DOI]或者dbo.DOI,不然会报"未找到表"。
这得看你的数据库建表时怎么设定的。

这块我没亲自跑过,但数据类型转换这块得注意。
比如你用getString(1 ),如果第一列是数字,直接转String可能就会出问题。
我记得有次用getInt(1 ),结果字段是null,直接转int就变成0了,引发业务逻辑错误。
所以最好还是用getObject(1 )然后自己判断类型,或者直接用getString("列名")。

最后这行注释///得去掉,编译会出错的。
我之前调试过,这种注释写法在IDE里看着还以为是块代码,挺烦人的。

数据我记得是X左右,但建议你核实一下,这userPwd="000000"密码太明显了,实际开发中肯定不会这么干。
我上次审计发现一个项目,生产环境数据库密码还是admin,当时把我笑的。

查询全体学生的姓名及其出生年份 (数据库)

1 . 好家伙,这第一条查询,直接就是选学生的名字和年龄,简单明了,就像点菜一样,直接写上你想要的菜名。

2 . 第二条,这个有点意思了,它是要查询“计算机专业”的学生数量,就像在超市里数一数有多少个苹果一样。

3 . 第三条,这个查询有点像筛选,只想要年龄大于1 9 岁的学生信息,就像在人群里找那些已经成年的人。

4 . 第四条,这个有点奇怪,它要查询专业是“...”的学生信息,这个省略号有点让人摸不着头脑,不知道是哪个专业。

5 . 第五条,这个查询是要找男性和年龄大于1 9 6 的学生,有点像在找特定条件的人,就像在找某个特定年龄段和性别的朋友。

6 . 第六条,这个查询是要找名字以“王”开头的学生信息,有点像在打电话的时候,只记得对方姓王。

7 . 第七条,这个查询是要找名字中不包含“王”和“佳”的学生信息,有点像在找没有特定标签的人。

8 . 第八条,这个查询是要找名字中不包含“_佳”的学生信息,这个下划线有点特别,不知道是什么意思。

9 . 第九条,这个查询是要找年龄在1 8 到2 5 岁之间的学生信息,有点像在找特定年龄段的人。

1 0. 第十条,这个查询是要找年龄不在1 8 到2 5 岁之间的学生信息,有点像在排除特定年龄段的人。

1 1 . 第十一条,这个查询有点复杂,它要找名字是“王涛”的学生所学的专业,有点像在找一个人背后的故事。

1 2 . 第十二条,这个查询是要找专业ID是001 的学生信息,有点像在查找某个特定分类下的信息。

1 3 . 第十三条,这个查询是要找专业ID不是001 的学生信息,有点像在排除某个特定分类。

1 4 . 第十四条,这个查询是要找专业成绩大于8 0分的学生信息,有点像在找优秀的学生。

1 5 . 第十五条,这个查询是要找专业ID是001 的学生,并且按照成绩从高到低排序,有点像在找成绩最好的学生。

1 6 . 第十六条,这个查询是要找所有学生,并且按照年龄降序和major升序排序,有点像在找年龄大的学生,并且按照专业分类。

1 7 . 到这里就有点懵了,后面几条没有具体的查询语句,不知道是忘记了还是什么原因。

1 8 . 1 9 . 这个查询是要统计所有学生的数量,有点像在数一数有多少个学生。

1 9 . 这个查询是要统计有多少个学生有成绩,有点像在数一数有多少个学生有成绩记录。

2 0. 到这里就有点不知道该说什么了,后面几条没有具体的查询语句,说实话,我当时也没想明白是什么意思。

2 1 . 2 2 . 好吧,就到这里吧,其他几道没有把握的题目就不放出来了,毕竟这里不是考试,对吧?