السلام عليكم ورحمة الله
اعمل على برنامج يتعامل مع MS Access به مجموعة من الامور - من ضمنها البحث في قاعدة البيانات
لدي ملفين الاول هو ملف ال JSP والثاني - قمت بأضافة Class يحوي دوال التعامل مع قاعدة البيانات
لدي دالة للبحث هذه هي
public void Search(int StudID)
{
try
{
String sql = "select * from Student_Table where Student_ID = "+ StudID;
rs = st.executeQuery(sql);
// if(rs.next())
{
Stud_Name = rs.getString("Student_Name");
Scholarshp = rs.getInt("Scholarship");
AdvisorID = rs.getString("Advisor_ID");
CategID = rs.getInt("Categ_ID");
rs = st.executeQuery("select * from Student_Category_Table where Categ_ID =" + CategID);
CategDescr = rs.getString("Categ_Descr");
}
}
catch(Exception ex)
{
Stud_Name = ex.getMessage();
System.out.println(ex.getMessage());
}
}وفي صفحة ال jsp اقوم بأستدعاء الدالة
if (request.getParameter("Submit").equals("Search")) {
//dBBeanId.initializeJdbc();
StudentID = request.getParameter("studID");
out.println(StudentID);
StudID = Integer.parseInt(StudentID);
dBBeanId.Search(StudID);%>
<input name = "studName"
<%out.print("value = \"" + dBBeanId.getStud_Name()+ "\" "); %>
<%
} // End of Searchلكن الخطأ يظهر لي عند هذه الدالة executeQuery.
وجدت سؤال مشابه هنا
لكن الجواب لم يعمل معي.
وهذا هو الكود الكامل
class
package package1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
*
* @author Administrator
*/
public class DBBean {
private Connection connection = null;
private Statement st;
private ResultSet rs;
///
int Student_ID;
private String Stud_Name;
private String AdvisorID;
private int Scholarshp;
private int CategID;
private String CategDescr;
///
/** Initialize database connection */
public void initializeJdbc() {
try {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
String db = "jdbc:odbc:DataSource2";
connection = DriverManager.getConnection(db);
st = connection.createStatement();
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
/** Get tables in the database */
public String[] getCategories() {
String[] Categories = new String[5];
try
{
st = connection.createStatement();
String sql = "select * from Student_Category_Table";
rs = st.executeQuery(sql);
int i = 0;
while(rs.next())
{
String Categ = rs.getString("Categ_Descr");
System.out.println(Categ);
Categories[i++] = Categ;
}
rs.close();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
return Categories;
}
/** Return connection property */
public Connection getConnection() {
return connection;
}
public int getStudent_ID() {
return Student_ID;
}
public void setStudent_ID(int student_ID) {
Student_ID = student_ID;
}
public String getStud_Name() {
return Stud_Name;
}
public void setStud_Name(String stud_Name) {
Stud_Name = stud_Name;
}
public String getAdvisorID() {
return AdvisorID;
}
public void setAdvisorID(String advisorID) {
AdvisorID = advisorID;
}
public String getCategDescr() {
return CategDescr;
}
public void setCategDescr(String categDescr) {
CategDescr = categDescr;
}
public int getScholarshp() {
return Scholarshp;
}
public void setScholarshp(int scholarshp) {
Scholarshp = scholarshp;
}
public int getCategID() {
return CategID;
}
public void setCategID(int categID) {
CategID = categID;
}
public void Search(int StudID)
{
try
{
// initializeJdbc();
// st = connection.createStatement();
Stud_Name = "1";
String sql = "select * from Student_Table where Student_ID = "+ StudID;
rs = st.executeQuery(sql);
//Stud_Name = "2";
if(rs.next())
{
Stud_Name = rs.getString("Student_Name");
Scholarshp = rs.getInt("Scholarship");
AdvisorID = rs.getString("Advisor_ID");
CategID = rs.getInt("Categ_ID");
rs = st.executeQuery("select * from Student_Category_Table where Categ_ID =" + CategID);
CategDescr = rs.getString("Categ_Descr");
}
}
catch(Exception ex)
{
Stud_Name = ex.getMessage();
System.out.println(ex.getMessage());
}
}
public void Save( int studID)
{
try {
st = connection.createStatement();
String sql = "select * from Advisor_Table where Advisor_ID = '"+ getAdvisorID() + "'";
rs = st.executeQuery(sql);
if(rs == null)
System.out.println("Advisor not found");
else
{
sql = "UPDATE Student_Table SET Student_Name='" + getStud_Name() + "', Scholarship ="
+ getScholarshp() + ", Categ_ID=" + getCategID() + ", Advisor_ID =," + getAdvisorID() +"'";
st.executeUpdate(sql);
}
}
catch( Exception ex)
{
System.out.println(ex.getMessage());
}
}
}وهذا ملف ال jsp
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import = "package1.DBBean" %>
<jsp:useBean id = "dBBeanId" scope = "session"
class = "package1.DBBean"></jsp:useBean>
<jsp:setProperty name = "dBBeanId" property = "*" />
<!DOCTYPE html>
<html>
<head>
<title>Address Information</title>
</head>
<body>
<%
String StudentID;
int StudID;
%>
<form name ="frm" method = "post" action = "Page1.jsp">
<%dBBeanId.initializeJdbc();%>
<% if (dBBeanId.getConnection() == null) { %>
Error: Login failed. Try again.
<% }
else {%>
<p>Student ID
<input type = "text" name = "studID" >
<%String[] cat = dBBeanId.getCategories();
if (cat == null) { %>
<% out.print("No Categories"); %>
<% }
else { %>
Student Category
<select name = "categories" size = "1">
<% for (int i = 0; i < cat.length; i++) { %>
<option><%= cat %></option>
<% }
}%>
</select><br />
Scholarship Amount
<input type = "text" name = "scholarshipAmount">
Student's Name <input type = "text" name = "StudName" >
</p>
<p>Advisor ID
<input type = "text" name = "advisorID" size = "20">
System Message
<input type = "text" name = "sysMessage" size = "28">
</p>
<!-- onclick="document.theForm.textBox.disabled=true;return false;">-->
<input type = "submit" name = "Submit" value = "Search">
<input type = "submit" name = "Submit" value = "New">
<input type = "submit" name = "Submit" value = "Save">
<!--input type = "reset" value = "Reset"-->
</p>
</form>
<% } %>
<%
if (request.getParameter("Submit") != null) {
if (request.getParameter("Submit").equals("Search")) {
out.println("Search__ ");
//dBBeanId.initializeJdbc();
StudentID = request.getParameter("studID");
out.println(StudentID);
StudID = Integer.parseInt(StudentID);
dBBeanId.Search(StudID);%>
<input name = "studName"
<%out.print("value = \"" + dBBeanId.getStud_Name()+ "\" "); %>
<%
} // End of Search
else if (request.getParameter("Submit").equals("Save")) {
out.print("Save");
dBBeanId.setStud_Name(request.getParameter("StudName"));
dBBeanId.setAdvisorID(request.getParameter("advisorID"));
dBBeanId.setCategDescr(request.getParameter("categories"));
dBBeanId.setScholarshp( Integer.parseInt(request.getParameter("scholarshipAmount")));
dBBeanId.Save(Integer.parseInt(request.getParameter("studID")));
//dBBeanId.setStud_Name(request.getParameter("StudName"));
} // End of Save
}
%>
</body>
</html>بارك الله بالجميع
