I would like to return a connection to a Bean to make statements to mysql database "ccdb" I'm really not sure of

public static Connection getConnection(){
        if(connection==null){
            try{
                Class.forName("org.gjt.mm.mysql.Driver");
                connection=DriverManager.getConnection("jdbc:mysql://localhost:8084","root","ceyesuma");
            }catch(Exception exc){ connection=null;}
        }
        
        return connection;
    }

Here is the bean to get connected. Should this work?

package db;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.Connection;
/**
 *
 * @author James
 */
public class DBConnection {
    static String dbdriver;
    static String connURL;
    static String dbusername="";
    static String dbpassword="";
    static Connection connection=null;
    /** Creates a new instance of DBConnection */
    public DBConnection() {
    }
    public String getDbdriver(){
        return dbdriver;
    }
    public String getConnURL(){
        return connURL;
    }
    public String getDbusername(){
        return dbusername;
    }
    public String getDbpassword(){
        return dbpassword;
    }
    public void setDbdriver(String dbdriver){
        DBConnection.dbdriver=dbdriver;
    }
    public void setConnURL(String url){
        DBConnection.connURL=url;
    }
    public void setDbusername(String dbusername){
        DBConnection.dbusername=dbusername;
    }
    public void setDbpassword(String dbpassword){
        DBConnection.dbpassword=dbpassword;
    }
    public static Connection getConnection(){
        if(connection==null){
            try{
                Class.forName("org.gjt.mm.mysql.Driver");
                connection=DriverManager.getConnection("jdbc:mysql://localhost:8084","root","ceyesuma");
            }catch(Exception exc){ connection=null;}
        }
        
        return connection;
    }
    
}

Recommended Answers

All 8 Replies

You are required to mention the database name too which u r missing. Jst add the db name as given below

try{
Class.forName("org.gjt.mm.mysql.Driver");
connection=DriverManager.getConnection("jdbc:mysql://localhost:8084/ccdb","root","ceyesuma");

Moreover, if you are creating a bean, why are you hardcoding the connection related params? Why don't you use the bean setters to initialize the values??

package creditcard;
import db.DBConnection;
import java.lang.Object.*;
import java.io.*;
import java.sql.*;

import java.util.Date;
import tio.*;
import java.io.File.*;
import java.io.IOException;


class CreditCard {
    private long AccountNo;
    private double CreditLimit;
    public double TotalCharges;
    public double TotalPayments;
    private double Amount;
    private int TransResult;
    private String TransErr;
    private String Description;
    private String log=null;
    private String date;
    private FormattedWriter out;
    
      private Statement stm = null;
    private ResultSet rst = null;
    private String tableName = "acctdata";
    private String x;
    private String query;
    private DBConnection db;

    private Connection Conn;
    
    public CreditCard( ) throws FileNotFoundException, IOException  {
        newAccount();
        CreditLimit = 1000;
        TotalCharges = 0;
        TotalPayments =0;
   
    }
    
    public CreditCard(long AccountNo) throws FileNotFoundException, IOException {
        this.AccountNo = AccountNo;
       CreditLimit = 1000;
        TotalCharges = 0;
        TotalPayments =0;
        //validate AccountNO
        
    }
    private void accountStatus() throws IOException{
        
         String f = "CC_Num_status.txt";
        File file = new File(f);
        FormattedWriter fw=new FormattedWriter(f);
        if(f!=null){
               
                fw.printfln("Account: " + accountNumber());
            fw.printfln("Credit Limit: " + creditLimit());
            fw.printfln("Available Credit: " + Available());
            fw.printfln("Outstanding Balance: " + Balance());
            fw.printfln("Charge: " + Amount);
            fw.printfln("Description; " + Description);
            fw.printfln("payment: " + Amount);
            fw.printfln("Total Charges: " + TotalCharges);
            fw.printfln("Total Payments " + TotalPayments);
            //fw.printfln("\n");
           // fw.printfln("Transaction (0=Quit, +$=charge, -$=payment, 9999=Limit increase): ");
                
            }
    }
    private void newAccount() throws FileNotFoundException, IOException {
        double r = Math.random();
        AccountNo = (long)(r * 100000000);
       
    }
    
    public long accountNumber()  {
        return AccountNo;
    }
   
       
   
     private void writeLog(double Amount, String Description) throws FileNotFoundException, IOException, SQLException {
           this.AccountNo = AccountNo;
           Date dt = new Date();
           dt.getTime();
        String f = "CC" + AccountNo + ".txt";
       File log = new File(f);
       FormattedWriter out = new FormattedWriter(new FileWriter(log,true));
       out.printfln(AccountNo);
       out.printfln(dt.toString());
       out.printfln(Amount);
       out.printfln(Description);
       
            out.close();
            
            setData();
            
    }
     
     
   
    public String getTableName(){
        return tableName;
    }
    public void setTableName(String tableName){
        this.tableName = tableName;
    }
    
    public String getData() throws SQLException{
        if(tableName==null || tableName.equals("")){
            return "";
        }
       
        return x;
    }
    
     public void setData() throws SQLException{
        if(tableName==null || tableName.equals("")){
            return;
        }
        Connection conn =null;
        db.getConnection();
            String query = "INSERT INTO"+tableName+" VALUES(11111112,'2000-7-3',50,'THIS',25";
            Statement stm= conn.createStatement();
            stm.executeUpdate(query);
     }
    public double creditLimit()  {
        return CreditLimit;
    }
    
    public void creditIncrease()throws FileNotFoundException, IOException{
        TransResult = 0;
        if (Math.random() > .25) {
            CreditLimit += 100;
             accountStatus();
          
        } else { 
            System.out.println("Sorry, credit increase not possible at this time.");
            TransResult = 1;
        }
    }
    public double Available() {
        double Available = CreditLimit - ( TotalCharges - TotalPayments );
        return Available;
    }
    
    public double Balance() {
        double Balance = ( TotalCharges - TotalPayments );
        return Balance;
    }
    public void Transaction( double Amount, String Description ) throws FileNotFoundException, IOException, SQLException {
       
        TransResult = 0;
        
        if ( Amount == 0 ) {
            TransResult = 1;
            TransErr = "Transaction amount is 0.";
            return;
        }
        
        
        if ( Amount > Available() ) {
            TransResult = 1;
            TransErr = "Transaction amount of $" + Amount + " has exceeded the available credit limit $" + 				Available();
            return;
        }
        
        
        if ( Description == "" ) {
            TransResult = 1;
            TransErr = "No transaction description entered.";
            return;
        }
        if ( Amount > 0 ) {
            
            TotalCharges += Amount;
            accountStatus();
            writeLog(Amount, Description);
           
            
        } else if ( Amount < 0 ) {
            
            TotalPayments += -(Amount);
            accountStatus();
             writeLog(Amount, Description);
           
        }
    }

    

    
}
/*
 * DBConnection.java
 *
 * Created on September 11, 2007, 11:50 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package db;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.Connection;
/**
 *
 * @author James
 */
public class DBConnection {
    static String dbdriver;
    static String connURL;
    static String dbusername="";
    static String dbpassword="";
    static Connection connection=null;
    /** Creates a new instance of DBConnection */
    public DBConnection() {
    }
    public String getDbdriver(){
        return dbdriver;
    }
    public String getConnURL(){
        return connURL;
    }
    public String getDbusername(){
        return dbusername;
    }
    public String getDbpassword(){
        return dbpassword;
    }
    public void setDbdriver(String dbdriver){
        DBConnection.dbdriver=dbdriver;
    }
    public void setConnURL(String url){
        DBConnection.connURL=url;
    }
    public void setDbusername(String dbusername){
        DBConnection.dbusername=dbusername;
    }
    public void setDbpassword(String dbpassword){
        DBConnection.dbpassword=dbpassword;
    }
    public static Connection getConnection(){
        if(connection==null){
            try{
                 Class.forName(dbdriver).newInstance();
                Class.forName("org.gjt.mm.mysql.Driver");
                connection=DriverManager.getConnection("jdbc:mysql://localhost:8080","root","ceyesuma");
            }catch(Exception exc){ connection=null;}
        }
        
        return connection;
    }
    
}

[code]

DROP DATABASE IF EXISTS ccdb;
CREATE DATABASE ccdb;
USE ccdb;

CREATE TABLE acctData
( AccountNo 	        long Primary Key,
 transdate 		char(20),
 chrg	                double,
 transdesc	        VARCHAR(100),
 pymnt	                double) );

INSERT INTO acctData VALUES (99999999, '2000-7-3',30,'food',50);

Here is the rest of the program. This class test CreditCard

package creditcard;
//Credit Card Test - tests CreditCard class


import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import tio.*;

class CreditCardTest {
     
    public static void main(String[] args) throws IOException {
        new CreditCardTest();
    }
    public CreditCardTest() throws IOException{
        int inval;
        long AccountNo;
        double tranval=-1;
        String transdesc = null;
        CreditCard cc;        
        String f = "CC_Num_status.txt";
        File file = new File(f);
        FormattedWriter fw=new FormattedWriter(f);
        System.out.println("Welcome to the Credit Card simulator!");
        System.out.println("Existing Account, New Account, or Exit? (Existing Account=1, New Account=2, Exit=0): ");
        inval = Console.in.readInt();
        if (inval == 0)
            return;
        
        if (inval == 1) {
            System.out.println("Existing Account; enter Account #: ");
            
            AccountNo = Console.in.readLong();
            if (AccountNo == 0)
                return;
            
            cc = new CreditCard(AccountNo);
            
        } else {
            cc = new CreditCard();
        }
        
        while (tranval != 0) {
            System.out.println("Account: " + cc.accountNumber());
            System.out.println("Credit Limit: " + cc.creditLimit());
            System.out.println("Available Credit: " + cc.Available());
            System.out.println("Outstanding Balance: " + cc.Balance());
            System.out.println("Charge: " + + tranval);
            System.out.println("Description; " + transdesc);
            System.out.println("payment: " + tranval);
            System.out.println("Total Charges: " + cc.TotalCharges);
            System.out.println("Total Payments " + cc.TotalPayments);
            System.out.println("\n");
            System.out.println("Transaction (0=Quit, +$=charge, -$=payment, 9999=Limit increase): ");
            tranval = Console.in.readDouble();
            
            
            if (tranval == 0)
                break;
            
            if (tranval == 9999)
                cc.creditIncrease();
            else {
                if (tranval > 0) {
                    System.out.println("Transaction description: ");
                    transdesc = Console.in.readLine();
                    transdesc = Console.in.readLine();
					
                } else
                    transdesc = "payment";

				cc.Transaction(tranval, transdesc);
                
            }
        }
    }
}

Your code doesn't seem to be correct. It should be something thing like:

package db;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.Connection;
/**
 *
 * @author James
 */
public class DBConnection {
    private String connURL="jdbc:mysql://localhost:8084";
    private String dbusername="root";
    private String dbpassword="ceyesuma";
    private String dbdriver= "org.gjt.mm.mysql.Driver";
    private String dbname = "ccdb";
    private static DBConnection connection=null;
    /** Creates a new instance of DBConnection */
    private DBConnection() {
    }
    public String getDbdriver(){
        return dbdriver;
    }
    public String getConnURL(){
        return connURL;
    }
    public String getDbusername(){
        return dbusername;
    }
    public String getDbpassword(){
        return dbpassword;
    }
    public void setDbdriver(String dbdriver){
        this.dbdriver=dbdriver;
    }
    public void setConnURL(String url){
        this.connURL=url;
    }
    public void setDbusername(String dbusername){
        this.dbusername=dbusername;
    }
    public void setDbpassword(String dbpassword){
        this.dbpassword=dbpassword;
    }
    public void setDbname(String dbname){
        this.dbname = dbname;
    }
    public String getDbname(){
       return dbname;
    }
    public static DBConnection getInstance(){
        if(connection==null){
           connection = new DBConnection();
        }
        return connection;
    }
    public Connection getConnection() throws Exception{
       Connection connection = null;
       Class.forName(driver);
       connection = DriverManager.getConnection(connURL +"/" + dbname, dbusername, dbpassword);
       return connection;
    }
}

Moreover, if you are creating a bean, why are you hardcoding the connection related params? Why don't you use the bean setters to initialize the values??

I posted another version of my program. I put everything except getting the connection in it. about creating bean : eventually I would like to reuse it (I think) right now I am not sure. Thanks though. Could you look at the connection new update thread?

You are making the same mistake. You are not giving the database name in your URL. Your URL should be jdbc:mysql://localhost:8084/ccbd

ok thanks.

private String dbdriver= "org.gjt.mm.mysql.Driver";

this code is not reusable but for now it does make sense to be except the line above. i found that in an example and I am not sure it works for me I am using mysql

Connection id:          2
Current database:       ccdb
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.0.41-community-nt MySQL Community Edition (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
TCP port:               3306
Uptime:                 7 hours 33 min 56 sec

Threads: 1  Questions: 17  Slow queries: 0  Opens: 15  Flush tables: 1  Open tab
les: 0  Queries per second avg: 0.001
--------------

mysql>

Thanks
GO RAMS!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.