PDA

View Full Version : سوال: چگونه اطلاعات یک فرد را توسط Text Field در Desktop Application با پایگاه داده MySql جستجو کنم؟



mostafarastin239
سه شنبه 20 بهمن 1388, 00:12 صبح
با عرض سلام و خسته نباشید
چگونه اطلاعات یک فرد را توسط Text Field در Desktop Application با پایگاه داده MySql جستجو کنم و نتایج را در یک جدول نشان دهم؟

sg.programmer
سه شنبه 20 بهمن 1388, 10:04 صبح
سلام دوست عزیز

بگید چه مشکلی دارید
این که شبیه به یه پروژه می شه ، خوب ضمنا وقت گیره
بگید کجای کار مشکل دارید تا همه دوستان کمک کنند

sg.programmer
سه شنبه 20 بهمن 1388, 11:55 صبح
کار با دیتابیس
DSN
MYSQL

// Fig. 25.25: DisplayAuthors.java
// Displaying the contents of the authors table.
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

/**
*
* @author Admin
* kar ba dsn v mysql
*/
public class SampleMYSQL {

// JDBC driver name and database URL
// static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
// static final String DATABASE_URL = "jdbc:mysql://localhost/db";
static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
static final String DATABASE_URL = "jdbc:odbc:db";

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Connection connection = null; // manages connection
Statement statement = null; // query statement

// connect to database books and query database
try
{
System.out.println( "---1" );
Class.forName( JDBC_DRIVER ); // load database driver class
System.out.println( "0" );
// establish connection to database
connection =
DriverManager.getConnection( DATABASE_URL, "", "" );
System.out.println( "1" );
// create Statement for querying database
statement = connection.createStatement();

// query database
ResultSet resultSet = statement.executeQuery(
"SELECT * FROM tbl_book" );
System.out.println( "2" );
// process query results
ResultSetMetaData metaData = resultSet.getMetaData();
int numberOfColumns = metaData.getColumnCount();
System.out.println( "Authors Table of Books Database:" );
System.out.println( "3" );
for ( int i = 1; i <= numberOfColumns; i++ )
System.out.printf( "%-8s\t", metaData.getColumnName( i ) );
System.out.println();

while ( resultSet.next() )
{
for ( int i = 1; i <= numberOfColumns; i++ )
System.out.printf( "%-8s\t", resultSet.getObject( i ) );
System.out.println();
} // end while
} // end try
catch ( SQLException sqlException )
{
sqlException.printStackTrace();
System.exit( 1 );
} // end catch
catch ( ClassNotFoundException classNotFound )
{
classNotFound.printStackTrace();
System.exit( 1 );
} // end catch
finally // ensure statement and connection are closed properly
{
try
{
statement.close();
connection.close();
} // end try
catch ( Exception exception )
{
exception.printStackTrace();
System.exit( 1 );
} // end catch
} // end finally
} // end main
} // end class DisplayAuthors

ermia2008
سه شنبه 20 بهمن 1388, 11:57 صبح
با عرض سلام و خسته نباشید
چگونه اطلاعات یک فرد را توسط Text Field در Desktop Application با پایگاه داده MySql جستجو کنم و نتایج را در یک جدول نشان دهم؟

سلام دوست عزیز

خوب این سوال خیلی کلیه. ولی کلیتش این میشه که اطلاعات TextField شما بخشی از کوئری شما رو می سازن که مقدار برگشتی این کوئری میشه همون جواب شما که میتونی اونا رو در یک JTable نمایش بدید.
حالا فرق نداره که پایگاه دادتون چی باشه.کلیت کار یکیه!

موفق باشید.

mostafarastin239
سه شنبه 20 بهمن 1388, 14:46 عصر
از توجه شما ممنون هستم. آقا اصلا بی خیال جدول.
شما این جوری تصور کن که من یه پایگاه داده دارم که بهش وصل شدم حالا داخل textfield مربوط به search در desktop application یه مقداری را وارد می کنم مثلا نام خانوادگی طرف. حالا در jbutton قسمت مربوط به نوشتن statements چطور کوئری را بنویسم که مقادیر موجود در پایگاه داده را با مقدار موجود در textfield مقایسه کنه و اطلاعات همسان را نشان بدهد.

trustmiracle
سه شنبه 20 بهمن 1388, 15:01 عصر
سلام.
اگر اشتباه نکنم این باید جواب بده



ResultSet result= statement.executeQuery("select * from tbl where name like '"+text1.getText+"%'")

mostafarastin239
سه شنبه 20 بهمن 1388, 16:25 عصر
آقا دمت گرم حل شد.
1- حالا اگر من بخواهم نتایج حاصل را داخل جدول نشان بدهم باید جدول new کنم!!!!؟؟؟؟؟

2- شما می دانید چرا mysql تا دیروز داده های فارسی را خوب می گرفت و خوب هم بازیابی می کرد ولی امروز فقط خوب می گیره ولی خوب بازیابی نمی کند!!!!!!!!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟

با تشکر

trustmiracle
سه شنبه 20 بهمن 1388, 16:33 عصر
ببین این مشلکت رو حل میکنه:
1- http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#simple
2- نه باهاش برخورد نکردم. شاید تنظیماتش رو تغییر دادی.

sg.programmer
سه شنبه 20 بهمن 1388, 22:15 عصر
سلام.
اگر اشتباه نکنم این باید جواب بده



ResultSet result= statement.executeQuery("select * from tbl where name like '"+text1.getText+"%'")




از این هم استفاده کن تمامی امکانات را بررسی می کند Like '% xxx %'
quote]


ResultSet result= statement.executeQuery("select * from tbl where name like '%"+text1.getText+"%'")

[/quote

2-بیشتر توضیح می دی و از چه نسخه اس داری استفاده می کنی

اینو تست کن
مقدار Collection ==>utf8_unicode_ci تغییر بده

mostafarastin239
چهارشنبه 21 بهمن 1388, 11:42 صبح
سلام
از بابت link برای جدول خیلی ممنون.
نسخه ی mysql که من استفاده می کنم mysql-4.0.20d است.

sg.programmer
چهارشنبه 21 بهمن 1388, 15:32 عصر
اینو تست کن
مقدار Collection ==>utf8_unicode_ci تغییر بده
من از XAMPP استفاده می کنم این خاصیت در این ورژن هست برای فیلد و...

احتمالا باید درست شه کارت چون منم با این مشکل روبرو شده بودم