📄 dbhelper.java
字号:
package com.whatratimes.dbms;
import java.sql.Connection;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
/**
* Created by IntelliJ IDEA.
* User: Tao
* Date: May 8, 2003
* Time: 11:46:48 PM
*/
public class DBHelper
{
public static final String TABLE_PACKAGE_PREFIX = "com.whatratimes.tables.";
private static Connection dbConn;
private static int BoardId = 0;
private static int CourseId = 0;
private static int ClassId = 0;
private static int QuestionId = 0;
private static int ExamId = 0;
private static int AnnounceId = 0;
private static int LogId = 0;
private static int FileId = 0;
private static int MessageId = 0;
private static int AssignmentId = 0;
private static int SubmitId = 0;
private static int UploadId = 0;
private static int PaperId = 0;
private static int StudentId = 0;
private static int TeacherId = 0;
private static int CourseDeveloperId = 0;
private static int AdministratorId = 0;
private static int TeacherLogId = 0;
private static int TeacherAwardId = 0;
private static int TeacherTrainingId = 0;
private static int TeacherExamId = 0;
private static int TeacherEvaluationId = 0;
// 加盟方编号:3位字符,由用户输入。
// 学生编号:7位数字,从1000001至9999999,系统自动生成。
// 教师编号:4位数字,从1001至9999,系统自动生成。
// 教务管理员编号:3位数字,从101至700,系统自动生成。
// 课程开始师编号:3位数字,从701至999,系统自动生成。
//
// 班级编号:整数,由系统自动加1生成。
// 考试编号:整数,由系统自动加1生成。
// 课程编号:整数,由系统自动加1生成。
// 试题编号:整数,由系统自动加1生成。
/*
<Resource name="jdbc/webeduDB" auth="Container"
type="javax.sql.DataSource"
password="webedu"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="webedu"
url="jdbc:sqlserver://127.0.0.1\\webedu:1689;databaseName=webedu"
maxActive="4"/>
<ResourceLink global="jdbc/webeduDB" name="jdbc/webeduDB" type="javax.sql.DataSource"/>
*/
static
{
load();
}
public static void load()
{
try
{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/webeduDB");
dbConn = ds.getConnection();
initKeys();
} catch (Exception e)
{
e.printStackTrace();
}
}
private static void initKeys()
{
CourseId = getMax("t_course", "CourseId");
ClassId = getMax("t_class", "ClassId");
QuestionId = getMax("t_question", "QuestionId");
ExamId = getMax("t_exam", "ExamId");
BoardId = getMax("t_bbs_board", "BoardId");
AnnounceId = getMax("t_bbs_announce", "AnnounceId");
LogId = getMax("t_course_history", "LogId");
FileId = getMax("t_question_file", "FileId");
MessageId = getMax("t_messages", "MessageId");
AssignmentId = getMax("t_exam_assigned", "AssignmentId");
SubmitId = getMax("t_exam_submit", "SubmitId");
UploadId = getMax("t_exam_question_upload", "UploadId");
PaperId = getMax("t_exam_question", "PaperId");
StudentId = getMax("t_student", "UserId");
int new_id = getMax("t_new_student", "NewId");
TeacherId = getMax("t_teacher", "UserId");
CourseDeveloperId = getMax("t_course_developer", "UserId");
AdministratorId = getMax("t_administrator", "UserId");
TeacherLogId = getMax("t_teacher_log", "TeacherLogId");
TeacherAwardId = getMax("t_teacher_award", "TeacherAwardId");
TeacherTrainingId = getMax("t_teacher_training", "TeacherTrainingId");
TeacherExamId = getMax("t_teacher_exam", "TeacherExamId");
TeacherEvaluationId = getMax("t_teacher_evaluation", "TeacherEvaluationId");
if ( new_id > StudentId )
{
StudentId = new_id;
}
if ( StudentId == 0 )
{
StudentId = 1000000;
}
if ( TeacherId == 0 )
{
TeacherId = 1000;
}
if ( CourseDeveloperId == 0 )
{
CourseDeveloperId = 700;
}
if ( AdministratorId == 0 )
{
AdministratorId = 100;
}
}
private static int getMax(String table_name, String pk_name)
{
QuerySQLExecuter sql = new QuerySQLExecuter();
sql.appendTableName(table_name);
sql.appendColumn("max(" + pk_name + ")", "n");
Object[] objs = sql.executeQuery();
if (objs.length == 0)
{
return 0;
}
Integer max = (Integer) ((Hashtable) objs[0]).get("n");
if (max == null)
{
return 0;
}
return max.intValue();
}
public static Connection getDBConnection()
{
return dbConn;
}
public static synchronized int getNextCourseId()
{
return ++CourseId;
}
public static synchronized int getNextQuestionId()
{
return ++QuestionId;
}
public static synchronized int getNextExamId()
{
return ++ExamId;
}
public static synchronized int getNextAnnounceId()
{
return ++AnnounceId;
}
public static synchronized int getNextLogId()
{
return ++LogId;
}
public static synchronized int getNextFileId()
{
return ++FileId;
}
public static synchronized int getNextAssignmentId()
{
return ++AssignmentId;
}
public static synchronized int getNextSubmitId()
{
return ++SubmitId;
}
public static synchronized int getNextUploadId()
{
return ++UploadId;
}
public static synchronized int getNextPaperId()
{
return ++PaperId;
}
public static synchronized int getNextStudentId()
{
return ++StudentId;
}
public static synchronized int getNextTeacherId()
{
return ++TeacherId;
}
public static synchronized int getNextCourseDeveloperId()
{
return ++CourseDeveloperId;
}
public static synchronized int getNextAdministratorId()
{
return ++AdministratorId;
}
public static synchronized int getNextTeacherLogId()
{
return ++TeacherLogId;
}
public static synchronized int getNextTeacherAwardId()
{
return ++TeacherAwardId;
}
public static synchronized int getNextTeacherExamId()
{
return ++TeacherExamId;
}
public static synchronized int getNextTeacherEvaluationId()
{
return ++TeacherEvaluationId;
}
public static synchronized int getNextTeacherTrainingId()
{
return ++TeacherTrainingId;
}
public static synchronized int getNextUserId(int user_type)
{
switch (user_type)
{
case 1:
return ++StudentId;
case 2:
return ++TeacherId;
case 3:
return ++CourseDeveloperId;
case 4:
return ++AdministratorId;
case 5:
return ++AdministratorId;
}
throw new RuntimeException();
}
public static synchronized int getNextClassId()
{
return ++ClassId;
}
public static synchronized int getNextMessageId()
{
return ++MessageId;
}
public static int getNextBoardId()
{
return ++BoardId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -