السلام عليكم ورحمة الله وبركاته
اخواني انا وجدت كلاس يقوم بنفس الي اريد قمت بتعديل بعض الاشياء فيه وصلت هذا الكود وهو يعمل بكفائة
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.table.*;
import java.net.URL;
import java.sql.*;
import java.util.*;
import java.util.Properties;
import java.net.URL;
import java.sql.*;
public class yesSql extends JApplet
{
private JTextField tfDrv = null, tfSQL = null;
Connection conn = null;
private Statement stmt =null;
public yesSql() {
}
public void init() {
initialize( (JPanel) getContentPane() );
}
public void initialize( JPanel p ) {
p.setLayout( new BorderLayout() );
JLabel lDrv = new JLabel( "DB Name: " );
tfDrv = new JTextField( 25 );
tfDrv.setText( "mysql" );
JPanel pp = new JPanel();
pp.setLayout( new GridLayout( 6, 2 ) );
pp.add( lDrv );
pp.add( tfDrv );
JLabel lSQL = new JLabel( "SQL" );
tfSQL = new JTextField( 25 );
tfSQL.setText( "select * from " );
pp.add( lSQL );
pp.add( tfSQL );
JButton b = new JButton( "Submit" );
b.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ev ) {
initDB("jdbc:mysql://localhost/mysql","root","root");
initTable( (JPanel) getContentPane() );
}
});
pp.add( b );
p.add( "North", pp );
}
private void initDB(String connect,String user,String pass) {
try {
String url = connect;
String drv = tfDrv.getText();
// DriverManager.registerDriver( new sun.jdbc.odbc.JdbcOdbcDriver() );
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection( url, user, pass );//should get name, pwd
System.out.println( "d: " + drv + ", u: " + url );
} catch( Exception e ) {
e.printStackTrace();
}
}
public ResultSet executeSQL( String sql ) throws Exception {
System.out.println( "DS exSQL " + sql );
int irs = 0;
ResultSet rs = null;
try {
stmt = conn.createStatement();
boolean bo = stmt.execute("use "+ tfDrv.getText());
if( sql.startsWith( "select" ) ) {
rs = stmt.executeQuery( sql );
System.out.println( "xq rs: " + rs );
}
else if( sql.startsWith( "delete" ) ||
sql.startsWith( "insert" ) ) {
irs = stmt.executeUpdate( sql );
}
else if( sql.startsWith( "update" ) ) {
irs = stmt.executeUpdate( sql );
}
}
catch( Exception e ) {
System.out.println(e.getMessage());
e.printStackTrace();
throw e;
}
return rs;
}
private DefaultTableModel doSQL( String sql ) {
DefaultTableModel m = new DefaultTableModel();
java.util.Vector data = new java.util.Vector();
java.util.Vector headers = new java.util.Vector();
try {
String s = "";
ResultSet rs = executeSQL( sql );
System.out.println( "rs " + rs );
ResultSetMetaData rsmd = rs.getMetaData();
for( int c = 1, cc = rsmd.getColumnCount(); c <= cc; c++ ) {
headers.addElement( rsmd.getColumnName( c ) );
}
java.util.Vector datum = null;
while( rs.next() )
{
datum = new java.util.Vector();
for( int c = 1, cc = rsmd.getColumnCount(); c <= cc; c++ ) {
s = rs.getString( c );
datum.addElement( s );
}
data.addElement( datum );
}
} catch( Exception e ) {
e.printStackTrace();
}
m.setDataVector( data, headers );
System.out.println( "d: " + data );
return m;
}
private void initTable( JPanel p ) {
DefaultTableModel dtm = doSQL( tfSQL.getText() );
JTable tb = new JTable( dtm );
JScrollPane sp = new JScrollPane( tb );
JFrame fr = new JFrame();
fr.getContentPane().add( sp );
fr.pack();
fr.show();
}
public static void main( String[] args ) {
JFrame f = new JFrame();
yesSql rb = new yesSql();
JPanel p = (JPanel) f.getContentPane();
rb.initialize( p );
f.pack();
f.show();
}
}تستطيع تجربته فقط قم بتغير اسم اليوزر للقاعدة والباسورد
initDB("jdbc:mysql://localhost/mysql","root","root");
المشكلة لدي اني اريده بدون واجهة لكي استخدمه في كلاسات اخرى واقوم بالاتصال بالقاعدة وجلب المعلومات منها
قمت بالتعديل حتى وصلت هذا الكود , وهو لا يعمل ابدا مع اني قمت بوضع دالة الطباعة الا انه لا يخرج ولا كلمة واحدة ياليت المساعدة
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.table.*;
import java.net.URL;
import java.sql.*;
import java.util.*;
import java.util.Properties;
import java.net.URL;
import java.sql.*;
public class Sql extends JApplet
{
public String tfDrv = null, tfSQL = null;
//public String dbUser,dbPass;
Connection conn = null;
private Statement stmt =null;
/*public Sql() {
}*/
public void init() {
}
private void initialize( String dbUser,String dbPass,String tfDrv ) {
initDB("jdbc:mysql://localhost/mysql",dbUser,dbPass,tfDrv);
}
private void initDB(String connect,String user,String pass,String tfDrv) {
try {
String url = connect;
this.tfDrv=tfDrv;
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection( url, user, pass );//should get name, pwd
} catch( Exception e ) {
e.printStackTrace();
}
}
public ResultSet executeSQL( String sql ) throws Exception {
System.out.println( "DS exSQL " + sql );
int irs = 0;
ResultSet rs = null;
try {
stmt = conn.createStatement();
boolean bo = stmt.execute("use "+ this.tfDrv);
if( sql.startsWith( "select" ) ) {
rs = stmt.executeQuery( sql );
System.out.println( "xq rs: " + rs );
}
else if( sql.startsWith( "delete" ) ||
sql.startsWith( "insert" ) ) {
irs = stmt.executeUpdate( sql );
}
else if( sql.startsWith( "update" ) ) {
irs = stmt.executeUpdate( sql );
}
}
catch( Exception e ) {
System.out.println(e.getMessage());
e.printStackTrace();
throw e;
}
return rs;
}
private DefaultTableModel doSQL( String sql ) {
DefaultTableModel m = new DefaultTableModel();
java.util.Vector data = new java.util.Vector();
java.util.Vector headers = new java.util.Vector();
try {
String s = "";
ResultSet rs = executeSQL( sql );
System.out.println( "rs " + rs );
ResultSetMetaData rsmd = rs.getMetaData();
////List datas = new LinkedList();
////datas = new ArrayList();
for( int c = 1, cc = rsmd.getColumnCount(); c <= cc; c++ ) {
headers.addElement( rsmd.getColumnName( c ) );
}
java.util.Vector datum = null;
while( rs.next() )
{
datum = new java.util.Vector();
for( int c = 1, cc = rsmd.getColumnCount(); c <= cc; c++ ) {
s = rs.getString( c );
datum.addElement( s );
}
data.addElement( datum );
}
} catch( Exception e ) {
e.printStackTrace();
}
m.setDataVector( data, headers );
System.out.println( "d: " + data );
return m;
}
public static void main( String[] args ) throws Exception{
Sql rb = new Sql();
ResultSet rs;
rb.initialize( "root","root","test" );
rb.doSQL("DELETE FROM `oop` WHERE `oop`.`java` = 2");
//rs = rb.executeSQL("DELETE FROM `oop` WHERE `oop`.`java` = 2");
System.out.println(rs.getString("1"));
}
}