Java连接到SQL server 2008并实现一个简单的学生信息管理系统

一、安装驱动程序的教程

编译器:
eclipise
JDK:8
首先你的电脑上需要已经安装好了SQL server 2008。
以上是我连接的时候所用的编译器和JDK版本。
那么接下来进入正题:

第一步:在微软官网下载一个JDBC驱动程序。
也可以在这里下载:
链接:https://pan.baidu.com/s/1oIFzh2EKJx7116fNeFk6bw
提取码:ccif
上面的驱动程序就是我用的
这个链接里也包括了程序后期用到的数据库,如果你只是想连接验证一下,也可以免去了创建数据库的步骤!

第二步:双击解压到随意的路径下。
在这里插入图片描述
箭头所指的就是驱动程序,双击解压,点击Unzip
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第1张图片
解压后就是这个东西,然后把它扔到你想扔到的地方
我将它扔到了
C:\Program Files
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第2张图片
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第3张图片
第三步:比较关键的一步,设置环境变量
打开解压后的文件一直到
C:\Program Files\Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\chs\jre8
这个路径下。然后将这个包的路径复制。
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第4张图片
然后就是设置系统的环境变量了。
如下,填完后确定!
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第5张图片
第四步:
打开Sql Server 2008配置管理器(Sql Server Configuration Manager),设置TCP端口为1433(一般默认情况是1433),也可以改成定义范围在(0~65535),这个端口值后面需要用到。
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第6张图片
当你确定的时候,会提示
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第7张图片
没关系,那你就停止TCP/IP,再重启

第五步:
连接数据库
如果你当时安装SQL server的时候设置的是SQL server与windows混合模式登陆,并设置了密码,那么可以忽略此步。
如果你是以Windows身份登陆那么你需要为SQL server添加一个用户。

打开Microsoft SQL Server Management Studio并以windows验证方式登录,左侧的对象资源管理器->安全性->登录名,右击sa->属性,为sa用户添加密码。
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第8张图片
添加好密码后点击状态->sql server和windows身份验证模式
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第9张图片
这样就创建好了sa用户,并为其设置好了密码。
这里我的密码是”yy5201314“

最后一步,将sqljdbc42.jar导入到eclipise的项目中。
直接将这个包复制到项目路径下
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第10张图片
然后利用eclipise导入,具体步骤如下,打开项目–>属性。
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第11张图片
导入后如下图:
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第12张图片
到这里所有的准备工作已经完成了,接下来就是写代码了
下面就是完整的代码,可供参考。

二、源代码

这里一个函数实现一个功能,实现了增删改查!
写的比较乱(见谅啦)

其中连接数据库的代码是:
String url = “jdbc:sqlserver://localhost:1433;Datebasename=Studys;”;
Connection con = DriverManager.getConnection(url,“sa”,“yy5201314”);

package study;

import java.sql.*;
import java.util.*;

public class Studys {
	static Connection con = null;
	//用于执行语句
	static Statement stmt = null;
    //用于接受结果
    static ResultSet rs = null;
    static String url = "jdbc:sqlserver://localhost:1433;Datebasename=Studys;";
    static Scanner input = new Scanner(System.in);
    public static void Menu() {
    	System.out.println("***********  欢迎使用本系统V.1.0  **********");
    	System.out.println("        (1)查询                   (2)修改                  ");
    	System.out.println("        (3)增加                   (4)删除                  ");
    	System.out.println("                          (5)退出                  ");
    	System.out.println("*******************************************");
    }
public static void Search() throws SQLException {
	try {
    	//连接数据库
    	con = DriverManager.getConnection(url,"sa","yy5201314");
    	//按名字查(SQL)
    	String sql_name = "select Cname,Score from Studys..SC,Studys..C where SC.Cno = C.Cno and SC.Sno in (select Sno from Studys..S where Sname = ?)";
    	//按课程名查(SQL)
    	String sql_c = "select Sname,Score from Studys..S,Studys..SC,Studys..C where C.Cname = ? and C.Cno = SC.Cno and SC.Sno = S.Sno";
    	PreparedStatement name = con.prepareStatement(sql_name);//按名字查询
    	PreparedStatement c = con.prepareStatement(sql_c);//按课程名查
    	System.out.println("请选择查询方式:");
    	System.out.println("(1)姓名查询    (2)课程名查询");
    	int select = 0;
    	select = input.nextInt();
    	switch(select) {
    	case 1:
    		System.out.println("请输入要查询的名字:");
    		String s = input.next();
    		name.setString(1, s);
    		rs = name.executeQuery();
    		System.out.println("*************************");
    		System.out.println("课程名称"+"\t\t"+"成绩");
    		while(rs.next()) {
    			String Cname = rs.getString("Cname");
    			int Score = rs.getInt("Score");
    			System.out.println(Cname+"\t"+Score);
    		}
    		System.out.println("*************************");
    		break;
    	case 2:
    		System.out.println("请输入要查询的课程名:");
    		String s1 = input.next();
    		c.setString(1, s1);
    		rs = c.executeQuery();
    		System.out.println("*************************");
    		System.out.println("学生名称"+"\t\t"+"成绩");
    		while(rs.next()) {
    			String Sname = rs.getString("Sname");
    			int Score = rs.getInt("Score");
    			System.out.println(Sname+"\t\t"+Score);
    		}
    		System.out.println("*************************");
    		break;
    	default:
    		System.out.println("无此选项!");
    		break;
    	}
    	/*while(rs.next()) {
    		int id = rs.getInt("Sno");
    		String Sname = rs.getString("Sname");
    		String Ssex = rs.getString("Ssex");
    		int Sage = rs.getInt("Sage");
    		String Sdept = rs.getString("Sdept");
    		System.out.println(id+"\t"+Sname+"\t"+Ssex+"\t"+Sage+"\t"+Sdept);
    	}*/
    }catch(SQLException e) {
    	e.printStackTrace();
    	System.out.println("数据连接错误!!!");
    }finally{
    	if(rs!=null) {
    		rs.close();
    	}
    	if(stmt!=null) {
    		stmt.close();
    	}
    	if(con!=null) {
    		con.close();
    	}
    }
}

//修改
public static void Change() throws SQLException {
	try {
    	//连接数据库
    	con = DriverManager.getConnection(url,"sa","yy5201314");
    	//修改(SQL)
    	String sql_change = "update Studys..S set Sname = ?,Ssex = ?,Sage = ? where Sno = ?";
    	String sql = "select * from Studys..S where Sno = ?";
    	PreparedStatement name = con.prepareStatement(sql_change);
    	PreparedStatement information = con.prepareStatement(sql);
    	String sname;//名字
    	String ssex;
    	int sage;
    	int id;
    	System.out.println("请输入要修改的学生的学号:");
        id = input.nextInt();
        information.setInt(1, id);
    	rs = information.executeQuery();
    	System.out.println("该学生的信息如下:");
    	System.out.println("************************************");
    	System.out.println("学号\t姓名\t性别\t年龄");
    	while(rs.next()) {
    		id = rs.getInt("Sno");
    		sname = rs.getString("Sname");
    		ssex = rs.getString("Ssex");
    		sage = rs.getInt("Sage");
    		System.out.println(id+"\t"+sname+"\t"+ssex+"\t"+sage);
    	}
    	System.out.println("************************************");
    	System.out.println("请输入修改后的姓名:");
    	sname = input.next();
    	name.setString(1, sname);
    	System.out.println("请输入修改后的性别:");
    	ssex = input.next();
    	name.setString(2, ssex);
    	System.out.println("请输入修改后的年龄:");
    	sage = input.nextInt();
    	name.setInt(3, sage);
    	name.setInt(4, id);
    	name.executeUpdate();
    	System.out.println("修改成功");
    	System.out.println("修改后的学生信息如下:");
    	information.setInt(1, id);
    	rs = information.executeQuery();
    	System.out.println("************************************");
    	System.out.println("学号\t姓名\t性别\t年龄");
    	while(rs.next()) {
    		id = rs.getInt("Sno");
    		sname = rs.getString("Sname");
    		ssex = rs.getString("Ssex");
    		sage = rs.getInt("Sage");
    		System.out.println(id+"\t"+sname+"\t"+ssex+"\t"+sage);
    	}
    	System.out.println("************************************");
    }catch(SQLException e) {
    	e.printStackTrace();
    	System.out.println("数据连接错误!!!");
    }finally{
    	if(rs!=null) {
    		rs.close();
    	}
    	if(stmt!=null) {
    		stmt.close();
    	}
    	if(con!=null) {
    		con.close();
    	}
    }
}
//增加
public static void Add() throws SQLException{
	try {
    	//连接数据库
    	con = DriverManager.getConnection(url,"sa","yy5201314");
    	//增加(SQL)a
    	String sql_add = "insert into Studys..S(Sno,Sname,Ssex,Sage) values(?,?,?,?)";
    	String sql = "select * from Studys..S where Sno = ?";
    	PreparedStatement name = con.prepareStatement(sql_add);
    	PreparedStatement information = con.prepareStatement(sql);
    	String sname;//名字
    	String ssex;
    	int sage;
    	int id;
    	System.out.println("请输入要增加学生的学号:");
    	id = input.nextInt();
    	name.setInt(1, id);
    	System.out.println("请输入要增加学生的姓名:");
    	sname = input.next();
    	name.setString(2, sname);
    	System.out.println("请输入要增加学生的性别:");
    	ssex = input.next();
    	name.setString(3, ssex);
    	System.out.println("请输入要增加学生的年龄:");
    	sage = input.nextInt();
    	name.setInt(4, sage);
    	name.executeUpdate();
    	System.out.println("增加成功");
    	System.out.println("增加的学生信息如下:");
    	information.setInt(1, id);
    	rs = information.executeQuery();
    	System.out.println("************************************");
    	System.out.println("学号\t姓名\t性别\t年龄");
    	while(rs.next()) {
    		id = rs.getInt("Sno");
    		sname = rs.getString("Sname");
    		ssex = rs.getString("Ssex");
    		sage = rs.getInt("Sage");
    		System.out.println(id+"\t"+sname+"\t"+ssex+"\t"+sage);
    	}
    	System.out.println("************************************");
    }catch(SQLException e) {
    	e.printStackTrace();
    	System.out.println("数据连接错误!!!");
    }finally{
    	if(rs!=null) {
    		rs.close();
    	}
    	if(stmt!=null) {
    		stmt.close();
    	}
    	if(con!=null) {
    		con.close();
    	}
    }
}
//删除
public static void Delete() throws SQLException {
	try {
    	//连接数据库
    	con = DriverManager.getConnection(url,"sa","yy5201314");
    	//删除(SQL)
    	String sql_delete = "delete from Studys..S where Sno = ?";
    	String sql = "select * from Studys..S";
    	PreparedStatement name = con.prepareStatement(sql_delete);
    	PreparedStatement information = con.prepareStatement(sql);
    	int sure = 0;
    	String sname;//名字
    	String ssex;
    	int sage;
    	int id;
    	System.out.println("请输入要删除的学生的学号:");
        id = input.nextInt();
        System.out.println("请问你确定要删除吗?(1)Yes(2)No");
        sure = input.nextInt();
        if(1 == sure) {
        	name.setInt(1, id);
        	name.executeUpdate();
        	System.out.println("删除成功!");
        	System.out.println("剩余学生信息如下:");
        	rs = information.executeQuery();
        	System.out.println("************************************");
        	System.out.println("学号\t姓名\t性别\t年龄");
        	while(rs.next()) {
        		id = rs.getInt("Sno");
        		sname = rs.getString("Sname");
        		ssex = rs.getString("Ssex");
        		sage = rs.getInt("Sage");
        		System.out.println(id+"\t"+sname+"\t"+ssex+"\t"+sage);
        	}
        	System.out.println("************************************");
        }
        else {
        	System.out.println("已取消删除操作!");
        }
    }catch(SQLException e) {
    	e.printStackTrace();
    	System.out.println("数据连接错误!!!");
    }finally{
    	if(rs!=null) {
    		rs.close();
    	}
    	if(stmt!=null) {
    		stmt.close();
    	}
    	if(con!=null) {
    		con.close();
    	}
    }
}

	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
        int select = 0;
        do {
        	Menu();
        	System.out.println("请输入需要的服务: ");
        	select = input.nextInt();
        	switch(select) {
        	case 1:
        		Search();
        		break;
        	case 2:
        		Change();
        		break;
        	case 3:
        		Add();
        		break;
        	case 4:
        		Delete();
        		break;
        	case 5:
        		System.out.println("拜拜~~~~");
        		break;
        	default:
        		System.out.println("为什么要选这个选项呢?作者还没有设计好。。。拜拜");
        		break;
        	}
        }while(select != 5);
        input.close();    
	}

}

需要注意的地方:
写sql语句的时候,有可能会出现表名无效,这是因为没有找到此表
所以在表名前加上数据库名和两点,这就是程序中为什么会有那种写法的原因!

三、运行结果

下面展示两个操作的结果图片:
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第13张图片
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第14张图片
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第15张图片

四、参考声明

安装驱动程序是我参考的一位大佬写的,只要一搜Java连接SQL server
第一个就是他。
Java连接到SQL server 2008并实现一个简单的学生信息管理系统_第16张图片
这是链接:
https://www.cnblogs.com/chlyA-F/p/6075675.html

你可能感兴趣的:(Java学习)