JAVA课程设计_CSDN博客收集和整理程序_数据库连接类

这个类是这个课程设计中的一个类,非独立运行(但是测试连接数据库可以独立运行,main方法和构造函数已经注释,需要测试把注释去掉)。

使用用法:如果配置不变,即数据库为Mysql,在本地上并且端口为3306(连接需要下载JDBC mysql的连接包),登录用户名为ROOT,没有密码。并且数据库名称为blogcheckdb,如果有改变可以使用set方法改变。使用时使用connect方法连接数据库。

连接需要使用数据库,稍后给出数据库文件。注意,没有数据库请 ​不要连接

本类按照需求写了非常多的方法用作接口,详细使用请看注释。

import java.sql.*;

public class DBC {

	Connection con;// 连接
	Statement stmt;
	ResultSet rs;// 返回值
	String ip = "127.0.0.1";
	String port = "3306";
	String DBname = "blogcheckdb";
	String url = "jdbc:mysql://" + ip + ":" + port + "/" + DBname
			+ "?characterEncoding=utf8";// 数据库链接
	String user = "root";// 数据库用户名
	String password = null;// 数据库密码

	/*public DBC() throws SQLException {

		this.connect();
		try {// 连接JDBC驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException ce) {
			System.out.println("SqlException:" + ce.getMessage());
			System.out.println("加载驱动失败");
		}

		con = DriverManager.getConnection(url, user, password);
		stmt = con.createStatement();
		// this.connect();
		// this.selectnews();
		// this.deleteclass(13);
		// this.insertnews(1, 1552, 122, 0, 9, 0, 0, 17, true);
		// this.updatanews(9, 1552, 122, 1, 9, 1, 1, 19, true);
		// this.selectclass();
		// this.selectallstudent();
		// this.insertclass("网络121");
		// this.closeDB();

	}*/

	public void connect() {
		try {// 连接JDBC驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException ce) {
			System.out.println("SqlException:" + ce.getMessage());
			System.out.println("加载驱动失败");
		}

		try {
			con = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			stmt = con.createStatement();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

/*	public static void main(String[] args) throws SQLException {
		new DBC();
	}*/

	public void insertclass(String classname) {// 插入班级
		try {
			int a = stmt.executeUpdate("insert into class(classname) values('"
					+ classname + "')");
			if (a != 0)
				System.out.println("插入班级" + classname + "成功!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void insertstudents(String studentname, String blogurl, int classno) {// 插入学生
		try {
			int a = stmt
					.executeUpdate("insert into students(studentname,url,classno) values('"
							+ studentname
							+ "','"
							+ blogurl
							+ "',"
							+ classno
							+ ")");
			if (a != 0)
				System.out.println("插入学生" + studentname + "成功!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public String[][] selectallstudent() {// 查询所有学生号码和姓名和URL,0为学生名,1学号,2为url
		int studentcount;// 人数
		String[][] Studentname = null;
		try {
			rs = stmt.executeQuery("SELECT count(*) count FROM Students");
			rs.next();
			studentcount = Integer.parseInt(rs.getString("count"));
			Studentname = new String[3][studentcount];
			rs = stmt.executeQuery("select * FROM students");
			// rs.next();
			for (int i = 0; i < studentcount && rs.next(); i++) {
				Studentname[0][i] = rs.getString("studentname");
				Studentname[1][i] = rs.getString("studentno");
				Studentname[2][i] = rs.getString("url");
				// System.out.print(Studentname[0][i]);
				// System.out.print(Studentname[1][i]);
				// System.out.println(Studentname[2][i]);
			}

			// System.out.println(studentcount);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return Studentname;

	}

	public String[][] selectclassstudent(int classno) {// 查询班级内学生,0为学生名,1学号,2为url
		int studentcount;// 人数
		String[][] Student = null;
		try {
			rs = stmt
					.executeQuery("SELECT count(*) count FROM Students where classno ='"
							+ classno + "'");
			rs.next();
			studentcount = Integer.parseInt(rs.getString("count"));

			Student = new String[3][studentcount];
			rs = stmt.executeQuery("select * FROM students");

			for (int i = 0; i < studentcount && rs.next(); i++) {
				Student[0][i] = rs.getString("studentname");
				Student[1][i] = rs.getString("studentno");
				Student[2][i] = rs.getString("url");
			}

			// System.out.println(studentcount);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return Student;

	}

	public String[][] selectclass() {// 查询班级,0为班级名称,1为班级号码
		int classcount;// 人数
		String[][] classm = null;
		try {
			rs = stmt.executeQuery("SELECT count(*) count FROM class");
			rs.next();
			classcount = Integer.parseInt(rs.getString("count"));
			classm = new String[2][classcount];
			rs = stmt.executeQuery("select * FROM class");
			// rs.next();
			for (int i = 0; i < classcount && rs.next(); i++) {
				classm[0][i] = rs.getString("classname");
				classm[1][i] = rs.getString("classno");
				// Studentname[2][i] = rs.getString("url");
				System.out.print(classm[0][i]);
				System.out.print(classm[1][i]);
				// System.out.println(Studentname[2][i]);
			}

			// System.out.println(studentcount);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return classm;

	}

	public String[][] selectnews() {// 查询更新状态,0为学生名,1学号,2为url
		int count;// 人数
		String[][] classm = null;
		try {
			rs = stmt
					.executeQuery("SELECT count(*) count FROM students a ,news b where a.studentno = b.studentno AND b.new = TRUE");
			rs.next();
			count = Integer.parseInt(rs.getString("count"));
			classm = new String[3][count];
			rs = stmt
					.executeQuery("SELECT studentname,url,a.studentno FROM students a ,news b where a.studentno = b.studentno AND b.new = TRUE");
			// rs.next();
			for (int i = 0; i < count && rs.next(); i++) {
				classm[0][i] = rs.getString("studentname");
				classm[1][i] = rs.getString("studentno");
				classm[2][i] = rs.getString("url");
				// Studentname[2][i] = rs.getString("url");
				System.out.print(classm[0][i]);
				System.out.print(classm[1][i]);
				System.out.println(classm[2][i]);
			}

			// System.out.println(studentcount);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return classm;
	}

	public void deleteclass(int classno) {// 删除班级
		try {

			rs = stmt
					.executeQuery("SELECT count(*) count FROM students where classno = "
							+ classno);
			rs.next();
			int count = Integer.parseInt(rs.getString("count"));
			int student[] = new int[count];
			rs = stmt
					.executeQuery("SELECT studentno FROM students where classno = "
							+ classno);

			for (int i = 0; i < count; i++) {
				rs.next();
				student[i] = Integer.parseInt(rs.getString("studentno"));
			}
			for (int i = 0; i < count; i++) {
				this.deletestudent(student[i]);
			}

			int a = stmt.executeUpdate("DELETE FROM class where classno = '"
					+ classno + "'");// 删除学生
			if (a != 0)
				System.out.println("删除班级" + classno + "成功!");
			rs.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void deletestudent(int studentno) {// 删除学生

		try {

			rs = stmt
					.executeQuery("SELECT count(*) count FROM news where studentno = "
							+ studentno);
			rs.next();
			int i = Integer.parseInt(rs.getString("count"));
			while (i > 0) {
				i--;
				this.deletenews(studentno);// 删除更新状态
			}

			int a = stmt
					.executeUpdate("DELETE FROM students where studentno = '"
							+ studentno + "'");// 删除学生
			if (a != 0)
				System.out.println("删除学生" + studentno + "成功!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void deletenews(int studentno) {// 删除更新状态
		try {

			int a = stmt.executeUpdate("DELETE FROM news where studentno = "
					+ studentno);
			if (a != 0)
				System.out.println("删除更新状态" + studentno + "成功!");

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void insertnews(int studentno, int accesscount, int credits,
			int rank, int originalcount, int reprintcount, int translatecount,
			int commentcount, boolean news) {// 插入更新状态

		try {

			rs = stmt
					.executeQuery("SELECT count(*) count FROM news where studentno = "
							+ studentno);
			rs.next();
			int i = Integer.parseInt(rs.getString("count"));
			while (i > 0) {
				i--;
				this.deletenews(studentno);// 删除更新状态
			}

			int a = stmt
					.executeUpdate("insert into news(studentno,accesscount,credits,rank,originalcount,reprintcount,translatecount,commentcount,new) values("
							+ studentno
							+ ","
							+ accesscount
							+ ","
							+ credits
							+ ","
							+ rank
							+ ","
							+ originalcount
							+ ","
							+ reprintcount
							+ ","
							+ translatecount
							+ ","
							+ commentcount + "," + news + ")");// 删除学生
			if (a != 0)
				System.out.println("插入更新状态" + studentno + "成功!");

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void updatanews(int studentno, int accesscount, int credits,
			int rank, int originalcount, int reprintcount, int translatecount,
			int commentcount, boolean news) {// 更新更新状态

		try {

			rs = stmt
					.executeQuery("SELECT count(*) count FROM news where studentno = "
							+ studentno);
			rs.next();
			int i = Integer.parseInt(rs.getString("count"));
			if (i == 0) {

				this.insertnews(studentno, accesscount, credits, rank,
						originalcount, reprintcount, translatecount,
						commentcount, news);// 删除更新状态
			} else {
				int a = stmt.executeUpdate("UPDATE news set studentno = "
						+ studentno + ",accesscount = " + accesscount
						+ ",credits = " + credits + ",rank = " + rank
						+ ",originalcount = " + originalcount
						+ ",reprintcount = " + reprintcount
						+ ",translatecount = " + translatecount
						+ ",commentcount = " + commentcount + ",new = " + news);//
				if (a != 0)
					System.out.println("更新状态" + studentno + "成功!");
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void closeDB() throws SQLException {// 关闭数据库连接

		// rs.close();
		stmt.close();
		con.close();

	}

	/////////////////////////////////////////////系统生成get方法和set方法//////////////////////////////////////////////////////
	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public String getPort() {
		return port;
	}

	public void setPort(String port) {
		this.port = port;
	}

	public String getDBname() {
		return DBname;
	}

	public void setDBname(String dBname) {
		DBname = dBname;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getUser() {
		return user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {

		this.password = password;
	}

	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}


你可能感兴趣的:(java,数据库,jdbc,源代码)