الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع جافا !!!!

مغلق
بدأه صلاح الثبيتي في 8 أبريل 2003 · 10 رد · 1,264 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :)

عندي مشكله بسيطه بالجافا و هي اذا حاولت بادخال بيانات جديده الى قاعدة بيانات الاوراكل .. تطلع النتائج بشكل null .. و لا تدخل البيانات بشكل صحيح و اذا استخدمت قاعدة بيانات اكسس اواجه مشكله اخرى و هي لا استطيع ادخال البيانات من الاساس

import java.io.*;

public class Library {
	public Books b1 = new Books(this);

	public Library() throws IOException {
		b1.BooksList();
		b1.AddBooks();
		b1.BooksList();
	}
	public static void main(String[] args) throws IOException {
		new Library();
	}
}

و هذا الكود :

import java.io.*;
import java.sql.*;

public class Books {
	private Connection connection = null;
	private Statement statement = null;
	private ResultSet resultSet = null;

	private int BookID;
	private String Title;
	private String Authers;
	private String Publisher;
	private int EditionNumber;
	private int CopyrightYear;
	private int Pages;
	private String ISBN;
	private String Availble;
	private int MemberID;

	Library l;
	public Books(Library l) {
		this.l = l;
	}
	public Books(int BookID,String Title,String Authers,String Publisher,int EditionNumber,
				int CopyrightYear,int Pages,String ISBN,String Availble, int MemberID) {
		this.BookID = BookID;
		this.Title = Title;
		this.Authers = Authers;
		this.Publisher = Publisher;
		this.EditionNumber = EditionNumber;
		this.CopyrightYear = CopyrightYear;
		this.Pages = Pages;
		this.ISBN = ISBN;
		this.Availble = Availble;
		this.MemberID = MemberID;
	}
	public void AddBooks() throws IOException {
		BufferedReader AddBook = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Write The Book ID");
		int book = Integer.parseInt(AddBook.readLine());

		System.out.println("Write The Book Title");
		String title = "'" + AddBook.readLine() + "'";

		System.out.println("Write The Book Auther");
		String auther = "'" + AddBook.readLine() + "'";

		System.out.println("Write The Book Publisher");
		String publisher = "'" + AddBook.readLine() + "'";

		System.out.println("Write The Book Edition Number");
		int editionnumber = Integer.parseInt(AddBook.readLine());

		System.out.println("Write The Book Copyright");
		int copyrightyear = Integer.parseInt(AddBook.readLine());

		System.out.println("Write The Book Pages");
		int pages = Integer.parseInt(AddBook.readLine());

		System.out.println("Write The Book ISBN");
		String isbn = "'" + AddBook.readLine() + "'";

		System.out.println("Is the Book Availble? (yes/no)");
		String availble = "'" + AddBook.readLine() + "'";

		System.out.println("Write Student ID");
		int studentid = Integer.parseInt(AddBook.readLine());

		new Books(book,title,auther,publisher,editionnumber,copyrightyear,pages,isbn,availble,studentid);
		try {
			//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Class.forName("oracle.jdbc.OracleDriver");
		}
		catch(ClassNotFoundException ea) {
			System.out.println(ea.toString());
		}
		catch(Exception e) {
			System.out.println(e.toString());
		}
		try {
			//connection = DriverManager.getConnection("jdbc:odbc:Library");
			connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","scott","tiger");
			statement  = connection.createStatement();
			resultSet  = statement.executeQuery("INSERT INTO books VALUES ("+BookID+","+
						Title+","+Authers+","+Publisher+","+ EditionNumber+","+
						CopyrightYear+","+Pages+","+ISBN+","+Availble+","+MemberID+")");

			resultSet.close();
			statement.close();
			connection.close();
		}
		catch(SQLException SQLe) {
			System.out.println(SQLe.toString());
		}
	}
	public void BooksList() {
		try {
			//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Class.forName("oracle.jdbc.OracleDriver");
		}
		catch(ClassNotFoundException ea) {
			System.out.println(ea.toString());
		}
		catch(Exception e) {
			System.out.println(e.toString());
		}
		try {
			//connection = DriverManager.getConnection("jdbc:odbc:Library");
			connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","scott","tiger");
			statement  = connection.createStatement();
			resultSet  = statement.executeQuery("SELECT * FROM books ORDER BY BookID");
			while(resultSet.next()) {
				System.out.println(resultSet.getString("BookID") + "t" + 
									resultSet.getString("Title") +"t" +
									resultSet.getString("Authers") + "t" +
									resultSet.getString("Publisher") + "t" +
									resultSet.getString("EditionNumber") + "t" +
									resultSet.getString("CopyrightYear") + "t" +
									resultSet.getString("Pages") + "t" +
									resultSet.getString("ISBN") + "t" +
									resultSet.getString("Availble") + "t" +
									resultSet.getString("MemberID"));
			}
			resultSet.close();
			statement.close();
			connection.close();
		}
		catch(SQLException SQLe) {
			System.out.println(SQLe.toString());
		}
	}
}

ارجو المساعده :)

#2

اتمنى تلقى حل لمشكلتك..ودي اساعد بس

ما اعرف:o

المهم ندعي لك..:rolleyes:

ان شالله يارب تنحل المشكلة..

رحيق

#3
Salam alakum,





I am sorry I can not write in Arabic!!

Salah,

Can you log on the Oracle instance and execute a query(insert) by hand?. as far as your code, it looks perfect.



Is the thin oracle driver in your classpath?

usually it looks like this (oracle.jdbc.driver.OracleDriver)



Good luck 

fi aman illah
#4

bawazeem : (وش اسمك بالعربي ؟؟ )

انا حليت المشكله .. طلع الخطأ غبي :D ... طبعاً هذا جزء من كود برنامج الـ JLibrary و طبعا اول اصدار راح يكون على الدوس و بعدين راح اشوف لي واحد فاهم بالـ JFrame و الـ JTable و باقي المكونات و راح يصدر حينها الاصدار الثاني ....

اخوووووي،، اذا كان عندي فكره عن الاكسس يا ليت تقول لي .. لأن البرنامج يشتغل بشكل صحيح و كامل على الاوراكل و اذا حاولت اربط نفس البرنامج بالاكسس لا استطيع ادخال البيانات،، فقط استطيع استخراجها :(

#5

اخوى صلاح

هذا برنامج يسوى اضافة بيانات لقاعدة البيانات لكن من نوع اكسس وكذلك يمكن يوجد فيه خطاء لكن عدل فيه لعله ينجح معاك وسامحنا على القصور

import java.sql.*;

import java.util.*;

import java.lang.*;

public class Insertinto

{

public static void main( String args[] )

{

try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

catch (ClassNotFoundException e)

{System.out.println("JDBC Driver NOT known or not FOUND");} // + e.ClassNotFoundException()

String url = "jdbc:odbc:DSNDB2";

try { Connection conn = DriverManager.getConnection(url);

String Query ="Insert into Table1 (a,B) select 'ggkkkkggg','10'";

Statement stmt = conn.createStatement();

stmt = conn.createStatement();

int i = stmt.executeUpdate(Query);

String Query = "Select * from Products";

ResultSet Results;

Statement stmt = conn.createStatement();

Results = stmt.executeQuery(Query);

insertion of many records

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '210', 'P210', 9900");

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '220', 'P220', 8800");

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '230', 'P230', 7700");

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '240', 'P240', 6600");

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '250', 'P250', 5500");

int [] counts = stmt.executeBatch();

stmt.close();

stmt=null;

conn.close();

conn=null;

Results.close();

Results=null;

}

catch (SQLException a)

{

System.out.println("nrMy Message : Exception not handled nr a.getErrorCode = " + a.getErrorCode() + "nr a.getSQLState() = " + a.getSQLState());

System.out.println("nr a.getMessage = " + a.getMessage() + "nra.getLocalizedMessage() = " + a.getLocalizedMessage() + "nr a.toString = " + a.toString());

}

}

}

#6

السلام عليكم

الاخ العزيز صلاح

اسمي محمد

ولا استطيع الكتابه بالعربي عندما اكون في العمل.

ليس لدي خبره في الاكسس ولكن يبدو انه هناك امان علي نفس طاولات الاكسس التي تريد ان تدخل اليها معلومات واقترح انك تشيك علي الصلاحيات التي تحملها في تلك الطاولات.

في امان الله

#7

أخوي حد السيف .. اذا تبغى تكتب كود :

تقوم بوضع الكود و تحديده و الضغط على الزر الموجود فوق كتابة الرد (PHP) او (#) لادراج الكود بشكل صحيح :)

اخوي محمد:

Table =! طاوله .. ههههههههه اسمه جدول بالعربي

خليني اشوف الكود اللي فوق و ارد عليكم :)

#8
اقتباس
كاتب الرسالة الأصلية : صلاح الثبيتي

اخوي محمد:

Table =! طاوله .. ههههههههه اسمه جدول بالعربي  

:o:D

#9
import java.sql.*;
import java.util.*;
import java.lang.*;

public class Insertinto
{
public static void main( String args[] )
{
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch (ClassNotFoundException e)
{System.out.println("JDBC Driver NOT known or not FOUND");} // + e.ClassNotFoundException()

String url = "jdbcdbcSNDB2";
try { Connection conn = DriverManager.getConnection(url);

String Query ="Insert into Table1 (a,B) select 'ggkkkkggg','10'";
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
int i = stmt.executeUpdate(Query);

String Query = "Select * from Products";
ResultSet Results;
Statement stmt = conn.createStatement();
Results = stmt.executeQuery(Query);

insertion of many records

stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '210', 'P210', 9900");
stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '220', 'P220', 8800");
stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '230', 'P230', 7700");
stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '240', 'P240', 6600");
stmt.addBatch("INSERT INTO Products ( NumProduct, Label, Price) SELECT '250', 'P250', 5500");

int [] counts = stmt.executeBatch();

stmt.close();
stmt=null;
conn.close();
conn=null;
Results.close();
Results=null;
}
catch (SQLException a)
{
System.out.println("nrMy Message : Exception not handled nr a.getErrorCode = " + a.getErrorCode() + "nr a.getSQLState() = " + a.getSQLState());
System.out.println("nr a.getMessage = " + a.getMessage() + "nra.getLocalizedMessage() = " + a.getLocalizedMessage() + "nr a.toString = " + a.toString());
}
}
}
#10
Did you write the second version?
if you want to help you? please send me e-mail 
and  I write a program, whitch  connect with oracle and give  the output for a result of SELECT-statment in JTable  
the Insert statment muss be write as

            resultSet  = statement.executeQuery("INSERT INTO books(Bookid,Title,Authors,Publisher,EditionNumber,CopyrightYear,Pages,ISBN,Availble,MemberID) VALUES ("+BookID+","+                       Title+","+Authers+","+Publisher+","+ EditionNumber+","+
                        CopyrightYear+","+Pages+","+ISBN+","+Availble+","+MemberID+")");
اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#11

الى الان ما كتبت الاصدار الثاني ..

الاول تقريبا خلص .. ما بقى اللا بعض الامور الصغيره .. و الاصدار الثاني ما بديت فيه،،، لأن عندي اختبارات بالجامعه و مو فاضي :(

هذا الموضوع مغلق.

مواضيع مشابهة