SQL数据库应用系统开发数据类_4.sql工具类 # 基于数据库连接池开发一个功能sql操作类, 方便以后操作数据库-程序员宅基地

技术标签: SQL数据库应用系统开发  


import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

//current
public class DataManagement {
    
	private static java.sql.Connection con=null;  
	private ResultSet resultSet=null;	
	Statement statement=null;
	private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";  
	private static String  url="jdbc:sqlserver://localhost:1433;databaseName=teaching"; 
	private static String user="sa",password="watchdog";  
	public static void main(String[] args) throws Exception {
    
		DataManagement test=new DataManagement();
		if(!test.isLink())
			System.out.println("no");
		System.out.println(DataManagement.selectIsIdfromstudents("20150101001"));

		DataManagement.con.close();
	}
	public boolean studentToDatabase(StudentInformation sInfo){
    
		return false;
	}
	public static boolean setStudentsInDatabase(StudentInformation temporaryStudent,StudentInformation currentStudent) throws Exception{
    
		DeletStudent(currentStudent.getId());
		temporaryStudent.setBaseGradeReport(currentStudent.getBaseGradeReport());
		Addstudent(temporaryStudent);
		return true;
	}
	/**
	 * �����ݿ���ɾ��һ��ѧ����Ϣ
	 * @param id ѧ��
	 * @return �Ƿ�ɹ�
	 */
	public static boolean DeletStudent(String id){
    
		try {
    
			con.createStatement().executeUpdate("DELETE FROM students WHERE studentid = '"+id+"'");
			con.createStatement().executeUpdate("DELETE FROM elective WHERE studentid = '"+id+"'");
		} catch (SQLException e) {
    
			return false;
		}
		return true;
	}
	public static boolean Addstudent(StudentInformation stu){
    
		try {
    
			con.createStatement().executeUpdate("insert into students values ('"
					+ stu.getId()+"','"+stu.getClassid()+"','"+stu.getName()
					+"',"+stu.getGender()+","+stu.getGraduated()+ ")");
		//	System.out.println("noooooooooooooooooooooooo1");
		} catch (SQLException e) {
    
			
			return false;
		}
			for(BaseGradeReport i:stu.getBaseGradeReport()){
    
				try {
    
				//	System.out.println("noooooooooooooooooooooooo");
					con.createStatement().executeUpdate("insert into elective values ('"
							+stu.getId()+"','"
									+i.getSubjectid()
									+ "',"+i.getGrade()+")");
				} catch (SQLException e) {
    
					System.out.println("insert into elective values ('"
							+stu.getId()+"','"
									+i.getSubjectid()
									+ "',"+i.getGrade()+")");
					
					e.printStackTrace();
				}
			}


		return true;
	}
	public static boolean Addstudent(StudentInformation temporaryStudent,StudentInformation currentStudent){
    
		temporaryStudent.setBaseGradeReport(currentStudent.getBaseGradeReport());
		return Addstudent(temporaryStudent);
	}
	
	public DataManagement(){
    
		if(!isLink())
			System.out.println("no");
	}
	/**
	 * ��ȡ���а༶
	 * @return һ����������Classes�����ArrayList
	 * @throws Exception
	 */
	public static  ArrayList<Classes> selectAllClasses() throws Exception  
	{
    
		ResultSet rs=null;
		ArrayList<Classes> classes=new ArrayList<Classes>();
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select *  FROM classes");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	
    	if(rs!=null){
    
    		while(rs.next()){
    
    	    	classes.add(new Classes(rs.getString(1),rs.getString(2)));
    		}
    	}
		return classes;
	}
	/**
	 * 
	 * @return ��һ��ѧ���Ļ�����Ϣ
	 * @throws SQLException
	 */
	public static StudentInformation greateStudent() throws SQLException{
    
			return greateStudent(StudentInformation.START);	
	}
	/**
	 * ����һ��ѧ��
	 * @param number �ڼ���ѧ��
	 * @return һ��ѧ���Ļ�����Ϣ
	 * @throws SQLException
	 */
	public static StudentInformation greateStudent(int number) throws SQLException{
    
		
		StudentInformation sInfo=new StudentInformation();
		
		number=number<StudentInformation.START?1:number;
		int count=Integer.valueOf(countStudents());
		if(count==0){
    
			new ChildWindow().showString("û��ѧ���ˣ����½�ѧ����");
			return StudentInformation.sInfoFormat();
		}
		number=number<=count?number:count;
		System.out.print("��ǰѧ��"+number);
		
		String []str=selectStudentFromStudents(number);
		StudentInformation.number=number;
		StudentInformation.end=Integer.valueOf(countStudents());

		sInfo.setId(str[0]);
		sInfo.setClassid(str[1]);		
		sInfo.setName(str[2]);	
		sInfo.setGender(str[3]);		
		sInfo.setGraduated(str[4]);
		sInfo.setClassname(selectClassnameFromClasses(str[1]));
		
		String[] subjectid=selectSubjectidFromAlective(str[0]);
		ArrayList<BaseGradeReport> baseGradeReport=new ArrayList<BaseGradeReport>();
		
		for(int i=0;i<subjectid.length;i++){
    
			baseGradeReport.add(new BaseGradeReport(
					subjectid[i], 
					selectSubjectnameFromSubjects(subjectid[i]),
					selectGradeFromAlective(str[0],subjectid[i])
							));	
		}
		sInfo.setBaseGradeReport(baseGradeReport);
		return sInfo;
	}
	/**
	 * �жϼ������������ݿ������Ƿ�ɹ�
	 * @return Boolean
	 */
	public static boolean isLink(){
    
		try {
      
	    	Class.forName(driver);   
	        }catch (ClassNotFoundException e) {
      
	        	System.out.println("��������ʧ��");  
    	    }  
		try {
      
	        con=DriverManager.getConnection(url,user,password); 
	        } catch (SQLException e) {
      
	        	System.out.println("����ʧ��");  
	        }  
		if(con!=null)
	        return true;
		return false;
	}
	/**
	 * ͳ��ѧ������
	 * @return ѧ������
	 * @throws SQLException
	 */
	public static String countStudents() throws SQLException{
    
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select count(studentid)from students");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	if(rs!=null){
    
    		if(rs.next())
    			return rs.getString(1);
    	}
		return "0"; 
	}
	/**
	 * ����ѧ����Ŀ�ɼ�
	 * @param id ѧ��
	 * @param subjectid �γ̺�
	 * @return �ɼ�
	 * @throws SQLException
	 */
	private static String selectGradeFromAlective(String id,String subjectid) throws SQLException{
    
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select grade FROM elective where elective.studentid="
	    +"'"+id+"'"+"and elective.subjectid='"+subjectid+"'");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	if(rs!=null){
    
    		if(rs.next())
    			return rs.getString(1);
    	}
		return "��"; 
	}
	/**
	 * ͨ��ѧ�Ų���ѡ�޿γ̺�
	 * @param id ѧ��
	 * @return һ�������γ̺ŵ�ArrayList<String>
	 * @throws SQLException
	 */
	private static String[] selectSubjectidFromAlective(String id) throws SQLException{
    
		ArrayList<String> subjectid=new ArrayList<String>();
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select subjectid FROM elective where elective.studentid="+"'"+id+"'");
	     //   System.out.println("select subjectid FROM elective where elective.studentid="+"'"+id+"'");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	if(rs!=null){
    
    		while(rs.next()){
    
    		subjectid.add(rs.getString(1)) ;
    		//System.out.println(rs.getString(1));
    	}}
  //  	System.out.println("*"+(String[])subjectid.toArray(new String[subjectid.size()]));
    	return (String[])subjectid.toArray(new String[subjectid.size()]);   	 
	}
	/**
	 * ͨ���༶����Classes����Ѱ�Ұ༶��
	 * @param classid
	 * @return �༶����
	 * @throws SQLException
	 */
	private static String selectClassnameFromClasses(String classid) throws SQLException{
    
		if(classid.equals("      ")){
    
			return null;
		}
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select classname FROM classes where classes.classid="+"'"+classid+"'");
	        System.out.println("select classname FROM classes where classes.classid="+"'"+classid+"'");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	
    	if(rs!=null){
    
    		rs.next();
    		return rs.getString(1);
    	}
		return "��";
	}
	/**
	 * ��Students����Ѱ��ѧ������Ϣ
	 * @param number
	 * @return һ������ѧ��Ψһ���Ե�����
	 * @throws SQLException
	 */
	public static String[] selectStudentFromStudents(int number) throws SQLException
	{
    
		ResultSet rs;
    	try
	    {
    
	        Statement stmt=con.createStatement();
	        rs = stmt.executeQuery(
	        		"select top 1 * from (select top "+number+
	        		"* FROM students order by studentid  )as A order by A.studentid desc");
	    }
	    catch(Exception e)
	    {
    
    	      throw e;
    	}
    	if(rs.next()){
    
    		return new String[]{
    rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)};
    	}
		return null;
	}
	/**
	 * ͨ���γ̴�����Subjects����Ѱ�����Ŀγ���
	 * @param subjectid  �γ̴���
	 * @return ���
	 * @throws SQLException
	 */
	public static String selectSubjectnameFromSubjects(String subjectid) throws SQLException{
    
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select subjectname  FROM subjects where subjects.subjectid='"+subjectid+"'");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	if(rs!=null){
    
    		if(rs.next())
    			return rs.getString(1);
    	}
		return "��"; 
	}
	/**
	 * ��ȡSubjects���пγ̴���
	 * @return ����ȫ���γ̴���ArrayList<String> 
	 * @throws SQLException
	 */
	public static ArrayList<String> selectSubjectidFromSubjects() throws SQLException{
    
		ArrayList<String> s=new ArrayList<String>();
		ResultSet rs=null;
    	try
	    {
    
	        rs = con.createStatement().executeQuery("select subjectid  FROM subjects ");
	    }
	    catch(Exception e)
	    {
    
	    	throw e;
    	}
    	if(rs!=null){
    
    		while(rs.next())
    			s.add(rs.getString(1)) ;
    	}
		return s; 
	}
	/**
	 * ��ȡ���ѧ��id
	 * @return ѧ��id
	 * @throws SQLException
	 */
	public static String selectMaxid(){
    
		ResultSet rs=null;
	        try {
    
				rs = con.createStatement().executeQuery("select max(studentid)from students");
			} catch (SQLException e) {
    
				// TODO �Զ����ɵ� catch ��
				e.printStackTrace();
			}
		try {
    
			if(rs.next()){
    
			    if(!(rs.getString(1)==null))
				    return rs.getString(1);
			}
		} catch (SQLException e) {
    
			// TODO �Զ����ɵ� catch ��
			e.printStackTrace();
		}
		return "0"; 
	}
	/**
	 * ��ѯѧ���Ƿ����
	 * @return ѧ��id
	 * @throws SQLException
	 */
	public static boolean selectIsIdfromstudents(String id){
    
		ResultSet rs=null;
	        try {
    
				rs = con.createStatement().executeQuery("select count(studentid)from students  WHERE studentid = '"+id+"'");
			} catch (SQLException e) {
    
				// TODO �Զ����ɵ� catch ��
				e.printStackTrace();
			}
		try {
    
			if(rs.next()){
    
			    if(!(rs.getString(1).equals("0")))
				    return true;
			}
		} catch (SQLException e) {
    
			// TODO �Զ����ɵ� catch ��
			e.printStackTrace();
		}
		return false; 
	}
	/**
	 * �Ͽ�����
	 */
	public static void close(){
    
		try {
    
			con.close();
		} catch (SQLException e) {
    
			// TODO �Զ����ɵ� catch ��
			e.printStackTrace();
		}
	}

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39464369/article/details/88581890

智能推荐

c++实现图的广度优先搜索(BFS)和深度优先搜索(DFS)_广度优先搜索和深度优先搜索c++-程序员宅基地

文章浏览阅读4.2k次,点赞6次,收藏30次。1. 基本概念图分为无向图和有向图。与一个顶点相邻接的顶点数叫做该顶点的度。在有向图中,进入一个顶点的弧叫做该顶点的入度,从一个顶点发出的弧叫做该顶点的出度。在无向图中,若图中任意一对顶点都是连通的,则称此图是连通图。在有向图中,若任意一对顶点u和v间存在一条从u到v的路径和从v到u的路径,则称此图是强连通图。无向图的一个极大连通子图称为该图的一个连通分量。有向图的一个极大强连通子..._广度优先搜索和深度优先搜索c++

【洛谷P1085】 不高兴的津津_洛谷p1085c-程序员宅基地

文章浏览阅读613次。题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入格式输入包括7..._洛谷p1085c

11、java常用单词(转载)-程序员宅基地

文章浏览阅读898次。abstract (关键字)抽象['.bstr.kt]accessvt.访问,存取['.kses]'(n.入口,使用权)algorithmn.算法['.lg.riem]annotation[java]代码注释[.n.u'tei..n]anonymousadj.匿名的[.'n.nim.s]'(反义:directly adv.直接地,..._string转byte[]数组后exception in thread "main" java.lang.numberformatexcepti

【Linux】sort排序、uniq去重、wc统计_sort 去重-程序员宅基地

文章浏览阅读2.4w次,点赞9次,收藏56次。文章目录一、sort 排序1、语法2、参数说明3、实例二、uniq 去重1、uniq使用2、sort和uniq去重结果对比三、wc 统计一、sort 排序sort命令用于 对文本文件内容,以行为单位来排序。sort命令以空格作为字段分隔符,将一行分割为多个关键字对文件进行排序。需要注意的是除非你将输出重定向到文件中,否则sort命令并不对文件内容进行实际的排序(即文件内容没有修改),只是..._sort 去重

驱动之路三--------button驱动(input设备)_linux button input-程序员宅基地

文章浏览阅读1.7k次。开发板:smdk6410系统:Linux按键是经常要用的,通过按键产生中断,可以处理不同的功能,键盘的输入就是这么一个原理,键盘也可以作为一个字符设备去写,在 驱动之路二 中就详细阐述过设备分类的概念,也将LED驱动写成了misc设备的,在这要将button驱动基于input设备去写,现在开始写了,先是头文件 s3c_button.h#ifndef __BU_linux button input

SpringBoot2系列一:基础入门_war 包 servletcontextlistener @enablescheduling-程序员宅基地

文章浏览阅读7.1k次。一、概述Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。二、特性 ①创建独立的Spring应用程序 ②嵌入的Tomcat,无需部署WAR文件 ③简化Maven配置 ④自动配置Spring ⑤提供生产就绪型功能,如指标,健康检查和外部配置 ⑥开箱即用,没有代码生成,也无..._war 包 servletcontextlistener @enablescheduling

随便推点

Matlab数据类型(笔记)_row在matlab-程序员宅基地

文章浏览阅读608次。乱七八糟的matlab笔记_row在matlab

在Ubuntu 14.04上安装Nagios 4用于监控服务器_nagios4-程序员宅基地

文章浏览阅读5.4k次。提供:ZStack云计算 前言Nagios 4是很流行的开源监控系统。本文将介绍如何在Ubuntu 14.04上进行该系统的安装与一些基本配置,配置完毕后可以在其Web界面对你的主机进行监控。本文还将涉及Nagios Remote Plugin Executor(NRPE)插件的优化,该插件安装在需要被监控的主机上作为agent使用。使用Nagios,我们可以随时查看主机的资源使用情况、确保重要的服_nagios4

Django:查询结果新增一列、查询结果字段名称更改(1)-程序员宅基地

文章浏览阅读642次,点赞15次,收藏6次。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。工具都帮大家整理好了,安装就可直接上手!例如:将原始字段中的。

基础实验篇 | uORB消息读写与自定义实验(二)_uorb通信-程序员宅基地

文章浏览阅读283次。uORB是PX4/Pixhawk系统中非常重要且关键的模块之一,是用于无人机模块间通信的协议机制。本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验全流程(二)。_uorb通信

Linux----网络编程(IO复用之epoll系统调用函数)_void epoll_add(int epfd, int fd){ struct epoll_eve-程序员宅基地

文章浏览阅读603次。服务器端epoll.c#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;stdlib.h&gt;#include &lt;assert.h&gt;#include &lt;unistd.h&gt;#include &lt;sys/socket.h&gt;#include &lt;netinet/in.h&g_void epoll_add(int epfd, int fd){ struct epoll_event ev; ev.data.fd = fd; ev

QT5.8.0与VS2013环境配置_vs2013用qt哪个版本-程序员宅基地

文章浏览阅读730次。1、下载VS2013,QT5.8.0,qt-vs-tools-msvc2013-2.1.1。  VS2013版本为:Visual Studio Ultimate 2013 with Update 4 - 简体中文.iso  QT5.8.0版本为:qt-opensource-windows-x86-msvc2013_64-5.8.0.exe,下载地址为:http://download.qt.io/a..._vs2013用qt哪个版本

推荐文章

热门文章

相关标签