Mm.mysql JDBC Driver and the WHERE clause

Anybody has succesfully performed a MySQL/JDBC query in a JSP application using more than one variable in the WHERE clause?
It works fine when I run queries with one fixed value assigned to a column and one variable assigned to the other column in the WHERE clause; but when I do it with more than one variable in the WHERE clause, it screws up throwing an error.
I wonder if it is a code error, a syntax error or if it is something tricky about the mm.mysql JDBC Driver. Following is a section of the code and the error. The variables are s_description and s_status. I read some examples in a book but they use SQL Server. Thank you in advance for any information.
CODE:
<% String sqlStatement = "" ; %>
<% String s_description = "Mexican Style Rice" ; %>
<% String s_status = "available" ; %>
<% java.sql.Statement stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE); %>
<% java.sql.ResultSet rs ; %>
<% sqlStatement = "SELECT code, description, status FROM products WHERE products.description =" + s_description + " AND products.status =" + s_status + ";" ;%>
<% rs = stmt.executeQuery(sqlStatement); %>
<% rs.beforeFirst(); %>
<% while (rs.next()) { %>
<% rs.updateString(3, "sold"); %>
<% rs.updateRow(); %>
<% }%>
<% rs.close(); %>
This is the ERROR it throws
java.sql.SQLException: Column not found: Unknown column 'available' in 'where clause'
     at org.gjt.mm.mysql.MysqlIO.sendCommand(MysqlIO.java:497)
     at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(MysqlIO.java:550)
     at org.gjt.mm.mysql.MysqlIO.sqlQuery(MysqlIO.java:635)
     at org.gjt.mm.mysql.Connection.execSQL(Connection.java:882)
     at org.gjt.mm.mysql.Connection.execSQL(Connection.java:815)
     at org.gjt.mm.mysql.Statement.executeQuery(Statement.java:169)
     at org.gjt.mm.mysql.jdbc2.Statement.executeQuery(Statement.java:78)
     at pagecompile._GetFood_xjsp._jspService(_GetFood_xjsp.java:45)
     at com.newatlanta.servletexec.JSP10HttpJspPage.service(JSP10HttpJspPage.java:41)
     at com.newatlanta.servletexec.JSP10Servlet.service(JSP10Servlet.java:779)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     at com.newatlanta.servletexec.ServletExec.CallServletService(ServletExec.java:1679)
     at com.newatlanta.servletexec.ServletExec.processServletRequest(ServletExec.java:1654)
     at com.newatlanta.servletexec.ServletExec.processServletAlias(ServletExec.java:1602)
     at com.newatlanta.servletexec.ServletExec.ProcessRequest(ServletExec.java:1343)
     at com.newatlanta.servletexec.ServletExec.ProcessRequest(ServletExec.java:1113)

I think perhaps this sentence has problems:
<% sqlStatement = "SELECT code, description, status FROM products WHERE products.description =" + s_description + " AND products.status =" + s_status + ";" ;%>
You can
<% sqlStatement = "SELECT code, description, status FROM products WHERE products.description ='" + s_description + "' AND products.status = '" + s_status + "'" ;%>
You perhaps ignore the ���� when using String variable s_description and s_status.
Hope this will help you. Good lucky!

Similar Messages

  • Com.mysql.jdbc.driver and jdbc:odbc bridge driver

    Hi All,
    I want to update mysql database from data in hashtable. My application already uses JDBC:OBDC bridge driver for retrieving data from excel sheet and putting in hashtable.
    For connecting to mysql i need to use com.mysql.jdbc.driver too in the same code.
    How to do that?
    my code uses.
    Read(String strFilePath,String strFileName)
               filepath = strFilePath;
               filename = strFileName;
                strDriver= "jdbc:odbc:Driver={MicroSoft Excel Driver (*.xls)}";Thanks

    Please stay with one thread:
    http://forum.java.sun.com/thread.jspa?threadID=5145466&tstart=0
    Please don't cross-post this way.

  • Oracle JDBC driver and the object types cache

    Hi there,
    Oracle JDBC Developer's Guide and Reference says (version 11gR1):
    Oracle JDBC drivers cache array and structure descriptors. This provides enormous performance benefits. However, it means that if you change the underlying type definition of a structure type in the database, the cached descriptor for that structure type will become stale and your application will receive a SQLException exception.http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/oraoot.htm#g1104293
    That is the problem we are having here... We have web services deployed to WebLogic server that use custom object types. Every time we have to change an object type definition the web services stop working (the error ORA-00902: invalid datatype is raised) and the only solution is to restart the JDBC data source which is quite disruptive to the development process.
    Is there a workaround to disable that "feature"?
    Thanks
    Luis

    Luis Cabral wrote:
    jschell wrote:
    Although if you are changing the object structure then the code to deal with it must change as well. So, especially in developement, why is restarting a problem?It is not that restarting per se is a problem. Here us developers do not have the required privileges to restart the JDBC pool and we have to ask the DBA to do it, and sometimes he is not immediately available. It is not a big thing but this can impact the development process.Your development process is hideously flawed then.
    The pool exists in the JEE server. And from your first post it seems that you have permission to restart that but not to access the management console. It is ridiculous to have access the the former and not the later.
    Not to mention that you should have your own JEE instance to develop on. Actually it is weird to me that a DBA would even be touching a JEE server. The competent ones I know don't even know how to do that. They know the database not the application servers.
    >
    In addition, having to restart a whole JDBC pool just because you changed a database object definition does not seem very flexible to me. Such issue does not exist in other connection types, for instance in OCI connections, that is why I thought there should be an option to turn it off if required.
    Well specifically you have to restart the pool because you were USING the object that changed.
    And I am rather certain that you can turn off the pool entirely.
    Even in production, I reckon that this may have a negative impact. For instance, say that you need to deploy a hot fix for a bug in one application that involves the re-creation of one single object type. This means that the whole JDBC pool, which may be used by other applications, may have to be shut down just because of that single object.Good point.
    I suggest you stop using complex objects in Oracle. I suspect that would eliminate the problem completely.

  • Help with com.mysql.jdbc.Driver

    Hi all
    I am new to working with java. I am working off of my laptop (pc -vista) and
    am trying to connect to a database on a server I have, mac osx 10.x.
    First question: I would install com.mysql.jdbc.Driver on the same server as
    the MySql server correct?
    Second and more important question: I have multiple pages
    printed out on installing this driver but I just cannot follow it. I am not
    very good in terminal(mac) and the install seems terminal based.
    Can someone please try to explain to me in laymen terms what needs to
    be done?
    thanks alot
    Marcus

    marcusam wrote:
    sorry for my lack of knowledge
    client code = all on one machine?No, client code = the code you use to access your DB server.
    >
    I wanted to access a database that was on a totally different machine, with a java application.
    is this not very doable - or realistic?
    It's completely doable.
    i found enviroment variables for CLASSPATH that are pointing inside 'jre1.6.0_07'
    but i also have 'jdk1.6.0_07' - should the development kit be the one i use? - sorry
    back to original question - so would i just move the .jar file into
    \jre1.6.0_02\lib\ext\ or something of that sort
    thanks alot
    MarcusYes, you can move the jar into the ext directory if you wish. How are you running your java application? What are you typing/clicking on?

  • Using mysql jdbc driver leads to exception

    I try to use com.mysql.jdbc.Driver with JDeveloper 9i business components. The following is the code I use to test if mysql driver works with business components:
    package test;
    import oracle.jbo.*;
    import java.util.Hashtable;
    import javax.naming.*;
    public class Test { 
    public static void main(String[] args) {   
    final String amName = "test.TestModule";
    final String voName = "test.TesttableView";
    final String userName = "some_user";
    final String password = "some_password";
    final String connStr = "jdbc:mysql://localhost:3306/test";
    System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
    Hashtable env = new Hashtable(2);
    env.put(Context.INITIAL_CONTEXT_FACTORY, JboContext.JBO_CONTEXT_FACTORY);
    env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
    ApplicationModule appMod = null;
    try {     
    javax.naming.Context ic = new InitialContext(env);
    ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(amName);
    appMod = home.create();
    java.util.Properties props = new java.util.Properties();
    props.put("user",userName);
    props.put("password",password);
    props.put("defaultRowPrefetch","15");
    appMod.getTransaction().connect(connStr, props);
    } catch(Exception e) {     
    e.printStackTrace();
    ViewObject vo = appMod.createViewObject("vo", voName);
    Row r = vo.first();
    r.setAttribute("Testcolumn", "Some text");
    System.out.println("vo before AppMod post " + r.getAttribute("Testcolumn"));
    try {   
    appMod.getTransaction().commit();
    System.out.println("Commit succeeded.");
    } catch (oracle.jbo.JboException e) {   
    System.out.println("Commit failed. " + e);
    r = vo.first();
    System.out.println("vo after AppMod commit " + r.getAttribute("Testcolumn"));
    Everything works fine until ViewObject.first() is called, then the following exception is thrown:
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.ClassCastException, msg=com.mysql.jdbc.PreparedStatement
         void oracle.jbo.JboException.<init>(java.lang.Throwable)
              JboException.java:344
         oracle.jbo.Row oracle.jbo.server.ViewRowSetIteratorImpl.first()
              ViewRowSetIteratorImpl.java:1156
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.first()
              ViewRowSetImpl.java:2240
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.first()
              ViewObjectImpl.java:4345
         void test.Test.main(java.lang.String[])
              Test.java:32
    ## Detail 0 ##
    java.lang.ClassCastException: com.mysql.jdbc.PreparedStatement
         void oracle.jbo.server.OracleSQLBuilderImpl.doStatementSetRowPrefetch(java.sql.Statement, int)
              OracleSQLBuilderImpl.java:894
         java.sql.PreparedStatement oracle.jbo.server.DBTransactionImpl.createPreparedStatement(java.lang.String, int)
              DBTransactionImpl.java:2695
         java.sql.PreparedStatement oracle.jbo.server.DBTransactionImpl2.createPreparedStatement(java.lang.String, int)
              DBTransactionImpl2.java:418
         java.sql.PreparedStatement oracle.jbo.server.DBTransactionImpl.createReUsePreparedStatement(java.lang.String, int)
              DBTransactionImpl.java:3467
         java.sql.PreparedStatement oracle.jbo.server.ViewObjectImpl.getPreparedStatement(int, boolean[])
              ViewObjectImpl.java:6496
         void oracle.jbo.server.QueryCollection.executeQuery(java.lang.Object[], int)
              QueryCollection.java:483
         void oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(java.lang.Object, java.lang.Object[], int)
              ViewObjectImpl.java:2600
         void oracle.jbo.server.ViewRowSetImpl.execute(boolean, boolean)
              ViewRowSetImpl.java:521
         void oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed()
              ViewRowSetIteratorImpl.java:2197
         oracle.jbo.Row oracle.jbo.server.ViewRowSetIteratorImpl.first()
              ViewRowSetIteratorImpl.java:1141
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.first()
              ViewRowSetImpl.java:2240
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.first()
              ViewObjectImpl.java:4345
         void test.Test.main(java.lang.String[])
              Test.java:32
    Exception in thread main.
    Is there anyone who would be able to help me with this problem?
    Thank you in advance!

    Use
    Class.forName("com.mysql.jdbc.Driver");Is the MySQL JDBC JAR file listed in project path.?

  • Difficulty Installing the MySQL JDBC Driver

    I am trying to install mySQL JDBC driver "mysql-connector-java-2.0.14.tar.gz" to link up with the mySQL server on a Windows XP OS.
    The error is:
    Cannot find database driver classes
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    I have read the USAGE AND INSTALLATION in the README file, but it can not seem to find these drivers still. I added the location to my PATH variable in the environment variables, and set CLASSPATH= ... as well and still can not find them
    Paths i added to PATH and CLASSPATH variables
    C:\j2sdk1.4.0_01\mysqlconnector.tar
    C:\j2sdk1.4.0_01\JDBC
    I did both methods it suggested, within the JDBC folder are the com and org folders. Anyone offer some suggestions.
    I know some smart person is going to say just use linux, but it is needed for my father and he can barely use MS Windows.
    Cheers for any help

    Dear Java Newsgroup User
    I would like to understand more around the Java and MySQLJDBC Configuration. Because I have some problem trying to install and Testing the MySQL JDBC Connector Driver.
    I use Windows XP Professional.
    I Downloaded and Intalled Sun One Studio to start learning JAVA and Features. This SDK Package make 3 Packages (directories):
    Directory No1 C:\JSDK4\j2sdk1.4.1_02 (JAVA_HOME)
    Directory No2 C:\JSDK4\s1studio (Source Examples ...)
    Directory No3 C:\Archivos de programa\Java\j2re1.4.1_02 (Java R. Env.)
    In the WINDOWS XP PANNEL CONTROL apper Java Plugins Control Pannel also
    when I press or click this icon apper a Java Screen where i can see the following Configuration in the Advanced Option:
    Java RuntTime Enviroment:
    Use Java Plugin Default
    JRE 1.4.1_02 in C:\Archivos de programa\Java\j2re1.4.1_02
    SDK 1.4.1_02 in C:\JSDK4\j2sdk1.4.1_02
    MySQL Driver Confiration and Version:
    This is my Un-ziped MySQL JDBC connector Path:
    C:\JSDK4\j2sdk1.4.1_02\mysql-connector-java-3.0.8-stable
    Into mysql-connector-java-3.0.8-stable directory exist an directory called [testsuite] that have some jar, java and class files.
    Testing MySQL JDBC Connecto Driver and Error Message:
    When i try to run the BaseTestCase.class file the system give me the following ERROR Message:
    C:\JSDK4\j2sdk1.4.1_02\mysql-connector-java-3.0.8-stable\testsuite>java BaseTestCase
    Exception in thread "main" java.lang.NoClassDefFoundError: BaseTestCase (
    ame: testsuite/BaseTestCase)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.
    3)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    My Question are the following:
    1- What is the meaning of this message error?
    2- What i need to do to solve this problem?
    3- What is the function specificly of the JRE 1.4.1_02 in C:\Archivos de programa\Java\j2re1.4.1_02 Directory in My JAVA Instalation.
    I you need more detail of my instalation please write me and i write back a soon as possible.
    Dear Users:
    Please Help Me! to continue with the next steps ...
    Best Regards and Than's so much for read this message
    From Panama City
    VanyRon

  • UCCX8 and MySql JDBC Driver

    Hi,
    i tried to find a way to connect the UCCX8 with my MySql database. I got the MySql JDBC Driver but i can't install this on my UCCX8 server.
    I use UCCX 8.0.1. Is there any way to connect mysql with UCCX8? Supported or unsupported?
    Thanks for all...
    Christian

    If you check the compatibility Matrix here:
    http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_compatibility/matrix/crscomtx.pdf
    MySQL is not listed as compatible. And so will not be supported...

  • Function-based Index and an OR-condition in the WHERE-clause

    We have some problems with functin-based indexes and
    the or-condition in a where-clause.
    (We use oracle 8i (8.1.7))
    create table TPERSON(ID number(10),NAME varchar2(20),...);
    create index I_NORMAL_TPERSON_NAME on TPERSON(NAME);
    create index I_FUNCTION_TPERSON_NAME on TPERSON(UPPER(NAME));
    The following two statements run very fast on a large table
    and the execution-plan asure the usage of the indexes
    (-while the session is appropriate configured and the table is analyzed):
    1)     select count(ID) FROM TPERSON where upper(NAME) like 'MIL%';
    2)     select count(ID) from TPERSON where NAME like 'Mil%' or (3=5);
    In particular we see that a normal index is used while the where-clause contains
    an OR-CONDITION.
    But if we try the similarly select-statement
    3)     select count(ID) FROM TPERSON where upper(NAME) like 'MIL%' or (3=5);
    the CBO will not use the function-index.
    (This behavior we only expect with views but not with indexes.)
    We ask for an advice like an hint, which enable the CBO-usage
    of function-based indexes in connection with OR.
    This problem seems to be artificial because it contains this dummy logic:
         or (3=5).
    This steams from an prepared statement, where this kind of boolean
    flag reduce the amount of different select-statements needed for
    covering the hole business-logic, while using bind-variables for the
    concrete query-parameters.
    A more realistic (still boild down) version of our prepared select-statement run in
    SQL Plus:
    define x_name = 'MIL%';
    define x_firstname = '';
    select * FROM TPERSON
    where (upper(NAME) like '&x_name' or ( '&x_name' = ''))
    and (upper(FIRSTNAME) like '&x_firstname' or ('&x_firstname' = ''))
    and ...;
    In particular we dont refernce the tablecolumn , but the QUERY-Parameter
    yield the second boolean value in the or-condition.
    The problem is that this condition ('&x_name' = '') dont use any index.
    thanks a lot for spending your time with this problem

    Try
    SELECT /*+ RULE */
    as your hint. I don't have the book with me, but this last weekend I read a section about your very problem. The book was a Oracle Press gold cover about Oracle 8i Performance tuning. If you e-mail me I can quote you the chapter when I get home Friday.

  • Where can i find mysql Jdbc driver for linux

    Hi all,
    Can any one give urls to download mysql jdbc driver for linux.
    And also for ODBC DRIVER FOR MYSQL ON LINUX.
    Thanks

    http://mmmysql.sourceforge.net/
    (This is a type 4 driver, so "for Linux" is irrelevant.)

  • JSP, DataWebBean: How to dynamically set the where clause of query and display record

    Hi,
    I am reposting this question as per suggestions made by Mr. Dwight.
    I have used ViewCurrentRecord web bean to display records from EMP table. I have to use the Dept_Id_FK from the current
    record of the EMP table to display corresponding records of Dept table. I have a view object called DeptView in my Business
    Components which selects all the records from the Dept table.
    How do I get the value of Dept_Id_FK and use it to display the required records of the Dept table?
    I tried to declare a variable and get the value of Dept_Id_FK but it did not work. My code is as follows:
    <%! String m_DeptId = null; %>
    <jsp:useBean id="RowViewer" class="oracle.jbo.html.databeans.ViewCurrentRecord" scope="request">
    <%
    RowViewer.initialize(pageContext, "EMPApp_EMP_EMPAppModule.EMPView1");
    RowViewer.setReleaseApplicationResources(false);
    RowViewer.getRowSet().next();
    m_DeptId = (String)RowViewer.getRowSet().getCurrentRow().getAttribute("DeptIdFk");
    %>
    </jsp:useBean>
    Thanks.
    null

    First of all, Thank you very much for making use of the new topic format. It is very much appreciated.
    As for your question, I think there are several different ways to accomplish what I think you want to do.
    1. Create a view object that includes both Emp and Dept entities and join them there. In this case, your query would look something like this:
    Select e.empno,e.name,...,d.dname,d.loc from emp e, dept d
    where e.deptno = d.deptno
    You should be able to create a JSP off of this view object that contains both the employee and department information. In this case, BC4J takes care of the foreign key to primary key coordination.
    2. In order to set a dynamic where clause for a view, you need to do the following in your usebean tag:
    rsn.initialize(application,session, request,response,out,"DeptView");
    rsn.getRowSet().getViewObject().setWhereClause("deptno=" &#0124; &#0124; m_DeptId);
    rsn.getRowSet().getViewObject().executeQuery();
    rsn.getRowSet().first();
    You will need to do this in a separate usebean tag from the EmpView, since the usebean can only initialize one view object.
    In other words, you would have your ViewCurrentRecord bean tag for the EmpView, then a separate one for the DeptView where you use the above code to set the where clause to display just the information for the department you want.
    Another option, but one I'm not sure would work as well, is to create a master-detail JSP to do this for you. Usually a master-detail is a one-to-many (one department to many employees). Your request appears to be the reverse, but might still be doable using the same mechanism.
    You set up relationships between views in your BC4J project using View Links. If you used the BC4J project wizard and created default views, some of these links may have been created for you. They are created when BC4J detects a foreign key to primary key relationship in the database.
    You can create your own View Links using the View Link wizard. Select your BC4J project node and choose Create View Link... from the context menu. You will be asked to select a source view (Emp), and a target view (Dept), then select the attribute in each view that related the two of them (deptno).
    Next, you need to reflect this new relationship setting in your application module. Select your app module and choose Edit from the context menu. On the data model page, select the EmpView node in the Selected list. Now select the DeptView node in the available list and shuttle it over. You should see DeptView1 via yourlink appear indented under the EmpView node. Save and rebuild your BC4J project to reflect the changes.
    In your JSP project, you can now have the wizard create a master-detail form for you based on DeptView1.
    Let me know if the above answers your question, or if I have misunderstood what it is you wanted to do.
    null

  • How to make MySQL JDBC Driver case-insensitive

    Hi,
    I'm porting a jdbc application from oracle to mysql. One of the problem is that oracle's column names are case insensitive, whereas CODE in mySql is different from code (see example posted below).
    I know that I can change the source code to use always the same case. But is there a way to make the mysql jdbc driver case-insensitive ?
    import java.sql.*;
    /* getString(String) is case sensitive for org.gjt.mm.mysql.Driver driver */
    mysql> describe currency;
    +-----------------+----------------+------+-----+----------------+-------+
    | Field           | Type           | Null | Key | Default        | Extra |
    +-----------------+----------------+------+-----+----------------+-------+
    | code            | char(3)        |      | PRI |                |       |
    | name            | varchar(40)    |      | UNI |                |       |
    | shortCode       | char(2)        | YES  | MUL | NULL           |       |
    | exchangeRate    | decimal(19,12) |      |     | 0.000000000000 |       |
    | changed         | decimal(1,0)   |      |     | 0              |       |
    | markedFlag      | decimal(1,0)   |      |     | 0              |       |
    | updateTimestamp | timestamp(14)  | YES  |     | NULL           |       |
    +-----------------+----------------+------+-----+----------------+-------+
    7 rows in set (0.00 sec)
    getObject(1)=EUR
    Trying code
    getObject("code")=EUR
    Trying Code
    java.sql.SQLException: Column 'Code' not found.
         at org.gjt.mm.mysql.ResultSet.findColumn(ResultSet.java:1213)
         at org.gjt.mm.mysql.ResultSet.getObject(ResultSet.java:1188)
         at mySqlDemo.main(mySqlDemo.java:61)
    getObject(1)=USD
    Trying code
    getObject("code")=USD
    Trying Code
    java.sql.SQLException: Column 'Code' not found.
         at org.gjt.mm.mysql.ResultSet.findColumn(ResultSet.java:1213)
         at org.gjt.mm.mysql.ResultSet.getObject(ResultSet.java:1188)
         at mySqlDemo.main(mySqlDemo.java:61)
    public class mySqlDemo {
         public final static void main(String[] args) {
              try {
                   /*== database constants ==*/
                   String DBHOST = "localhost";
                   String DBNAME = "test";
                   String DBUSER = "test";
                   String DBPASS = "";
                   String DBDRIVER = "org.gjt.mm.mysql.Driver";
                   /*== setup database driver and connect ==*/
                   Class.forName(DBDRIVER).newInstance();
                   String conurl = "jdbc:mysql://"+DBHOST+"/"+DBNAME;
                   Connection db = DriverManager.getConnection(conurl,DBUSER,DBPASS);
                   /*== create sql query and execute ==*/
                   //String sql = "select code from currency";
                   String sql = "select Currency.code, Currency.name, Currency.shortCode, Currency.exchangeRate, Currency.changed, Currency.markedFlag, Currency.updateTimestamp from Currency order by code";
                   Statement stmnt = db.createStatement();
                   ResultSet rs = stmnt.executeQuery(sql);
                   /*== display results ==*/
                   while(rs.next()) {
                          System.out.println("getObject(1)=" + rs.getObject(1));
                          // works, because "Currency.code" has been selected
                          System.out.println("Trying code");
                          try {
                                 System.out.println("getObject(\"code\")=" + rs.getObject("code"));
                          } catch(SQLException ex) {
                               ex.printStackTrace();
                         // case sensitive !
                          // does not work, because "Currency.code" has been selected
                          // "code" != "Code"
                          System.out.println("Trying Code");
                          try {
                                 System.out.println("getObject(\"Code\")=" + rs.getObject("Code"));
                          } catch(SQLException ex) {
                               ex.printStackTrace();
              } catch(Throwable t) {
                   t.printStackTrace();
    }

    One of the problem is that oracle's column names are
    case insensitive, whereas CODE in mySql is different from code (see example posted below).I doubt that.
    SQL standards are rather specific that columns names are case insensitive unless quoted identifiers are used. And presumably you are doing that.
    What you are seeing is a difference in drivers not databases.
    I would guess that the only way to change the behaviour is to modify your code. If you uppercase everything it should work. Or you could use positional rather than named column extraction.

  • No suitable driver with com.mysql.jdbc.Driver

    Ok. here's the issue. I have a windows box. (first problem) but let's pretend that it's ok. :) I installed Tomcat 4.1 installed J2SDK1.4.0
    start serving pages GREAT!. I have Mysql working perfectly with PHP on this system. I JUST want to connect with JDBC :)
    I've downloaded the MySQL Jdbc Connector/J 3.08 stable installed the .jar file in the $JAVA_HOME/jre/lib/ext as per the README
    Now granted I am a little new to JSP. but I have checked over this again and again. used different code. connected as many ways as I can think of and I still get the same result.
    Database Error :
    No suitable driver
    Please Try Some Other Time
    So I figure it's a MYSQL issue. no I also went thru and did the Microsot connection to MS SQL 2000 with the same result.
    Here's where the drivers are (tried using the other method for installing the MySQL connector as well, and my class path
    Y:\j2sdk1.4.0\com\mysql\jdbc\Driver.class
    com.mysql.jdbc.Driver.class
    Y:\j2sdk1.4.0\org\gjt\mm\mysql\Driver.class
    org.gjt.mm.mysql.Driver.class
    My classpath is:
    .;F:\j2sdk1.4.0\;F:\j2sdk1.4.0\bin\;F:\j2sdk1.4.0\lib\;F:\j2sdk1.4.0\lib\classes\
    [ Here's The Enviorment]
    Windows 2000 5.00.2195 SP3
    MS SQL 2K SP3
    Apache Tomcat/4.1.27
    j2sdk1.4.0
    MySql 3.23.57-nt
    mysql Jdbc Connector/J 3.08 stable
    <!-- mysql.jsp BEGIN-->
    <%@ page import="java.sql.*" %>
    <%
    Connection conn;
    ResultSet results;
    try      {
         String jdbc_driver = "com.mysql.jdbc.Driver";
         System.out.println("jdbc_driver = " + jdbc_driver);
         Class.forName(jdbc_driver).newInstance();
         catch (ClassNotFoundException cnfe)
         System.out.println(cnfe.getMessage());
    try      {
         String url = "jdbc:mysql://localhost:3306/javatest?username=root,password=****"; // pass hidden
         conn = DriverManager.getConnection(url);
         System.out.println("connected to mySql DataBase");
         Statement stmt = conn.createStatement();
         Statement smt=conn.createStatement();
         results=smt.executeQuery("select * from testdata");
              while(results.next())
                   %>
                   <%= results.getString("foo")%>
                   <%= results.getString("bar")%>
                   <%= results.getString("id")%>
                   <%
              results.close();
              conn.close();
         catch(Exception exp)
         %>
              <H3>Database Error : </H3><B><%= exp.getMessage() %></B><H3>Please Try Some Other Time</H3>
         <%
    %>
    <!-- mysql.jsp end -->
    BTW i aslo tried connecting to MicrosoftSQL 2K
    <!-- microsoft.jsp Begin -->
    <%@ page import="java.sql.*" %>
    <%
    Connection conn;
    ResultSet results;
    try      {
         String jdbc_driver = "sun.jdbc.odbc.JdbcObdcDriver";
         System.out.println("jdbc_driver = " + jdbc_driver);
         Class.forName(jdbc_driver).newInstance();
         catch (ClassNotFoundException cnfe)
         System.out.println(cnfe.getMessage());
    try      {
         String url = "jdbc:odbc:contacts";
         String username = "javauser";
         String pw = "javauser";
         conn = DriverManager.getConnection(url, username, pw);
         System.out.println("connected to Msoft DataBase");
         Statement stmt = conn.createStatement();
         Statement smt=conn.createStatement();
         results=smt.executeQuery("select * from contacts");
              while(results.next())
                   %>
                   <%= results.getString("name")%><br>
                   <%
              results.close();
              conn.close();
         catch(Exception exp)
         %>
              <H3>Database Error : </H3><B><%= exp.getMessage() %></B><H3>Please Try Some Other Time</H3>
         <%
    %>
    <!-- microsoft.jsp end -->
    got the exact same results.
    Just to show you mysql is Good. with localhost.
    mysql -u root -h localhost -p
    mysql> use javatest
    Database changed
    mysql> select * from testdata;
    | id | foo | bar |
    | 1 | hello | 12345 |
    1 row in set (0.00 sec)
    mysql>

    Nope, it's not a MySQL issue.
    I'd recommend NOT putting the JDBC JAR file (or any others, except Sun-sanctioned extensions) in JAVA_HOME/jre/lib/ext.
    JDBC JARs belong in TOMCAT_HOME/common/lib or in the WEB-INF/lib directory for your particular app. If you put them in the former, all apps running under Tomcat can have access to them. If you put them in the latter, only your app can see them.
    After you've done that, do some reading about JNDI data sources under Tomcat:
    http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html
    That way you can get that connection code out of your JSPs and into the web.xml and <Context>, where it belongs. You'll be able to change data sources without rewriting your pages.
    Good luck - MOD

  • IDM 8.0 would not pick up MySQL jdbc driver.

    I am trying to create database table using "create new resources" in IDM.
    With orcale, I have no issue. I copy a jdbc driver to C:\idm8\WEB-INF\lib and rename it
    oraclejdbc.jar.
    However, after I copyed mysql-connector-java-5.1.5-bin.jar ( which works with netbean and MySQL server on
    my PC) into the same C:\idm8\WEB-INF\lib directory ( and i tried rename it mysqljdbc.jar too),
    Database Type: MySQL
    JDBC Driver: com.mysql.jdbc.Driver
    JDBC URL TEmplate: jdbc:mysql://localhost:3306/test
    Host:     localhost
    TCP Port: 3306
    Database: test
    I got an error:
    XPRESS <invoke> exception:
    Can't call method getTableData on class com.waveset.ui.web.resources.wizard.DBTableUtil
    ==> com.waveset.util.WavesetException: ==> java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
    Then I tried the case where I replace localhost with IP Address and th ecase I use Fully qulified
    PC name, I got the same error.
    I know that the driver works because it is being used in NetBeans6.1
    I also tried mysql-connector-java-5.1.6-bin.jar with the same results.
    Does anyone have any ideas?
    Thanks!

    Could your issue be with this line here:
    JDBC URL Template: jdbc:mysql://localhost:3306/testI believe it should be something like this: (As chapo pointed out)
    JDBC URL template: jdbc:mysql://%h:%p/%dThe template is exactly that, a template.. The values are filled in by the next three entries

  • How to change recordset bahaviour to accept dynamic column names in the where clause

    Hi
    im using php-mysql and i make a recordset and i want to make the column names in the where clause to be dynamic like
    "select id,name from mytable where $tablename-$myvar";
    but when i do this my i break the recordset and it disappear
    and when i use variables from advanced recordset it only dynamic for the value of the column not for the column name
    and when i write the column name to dynamic as above by hand it truns a red exclamation mark on the server behaviour panel
    so i think the only way is to change the recordset behaviour is it? if so How to make it accept dynamic column names?
    thanks in advance.

    As bregent has already explained to you, customizing the recordset code will result in Dreamweaver no longer recognizing the server behavior. This isn't a problem, but it does mean that you need to lay out your dynamic text with the Bindings panel before making any changes. Once you have changed the recordset code, the Bindings panel will no longer recognize the recordset fields.
    Using a variable to choose a column name is quite simple, but you need to take some security measures to ensure that the value passed through the query string isn't attempting SQL injection. An effective way of doing this is to create an array of acceptable column names, and check that the value matches.
    // create array of acceptable values
    $valid = array('column_name1', 'column_name2', 'column_name3');
    // if the query string contains an acceptable column name, use it
    if (isset($_GET['colname']) && in_array($_GET['colname'], $valid)) {
      $col = $GET['colname'];
    } else {
      // set a default value if the submitted one was invalid
      $col = 'column_name1'
    You can then use $col directly in the SQL query.

  • Error : class not found exception : com.mysql.jdbc.driver in Eclipse Tool

    Hi
    I have impoted project file in eclipse in new machine using option import from existing workbence . When i stat to debug this project ,
    i am getting error as class not found exception : com.mysql.jdbc.driver . my project folder already consist of mysql .jar file in /web appls/web-inf folder.
    Application is running successfully in other machine from where i took the application file. As this error appeared I also added jar file into project path as Project ---->properties-- build java path---libraries----add external jar file.
    kindly hep me.

    Sounds like an eclipse question - not a JDBC one.
    But since eclipse is telling you it can't find it then it means it is not in the eclipse path. So you must add it. (The fact that it is somewhere is irrelevant - all that matters is it is not in the class path.)

Maybe you are looking for

  • Work flow in Release Procedure

    Hi all,       What are the steps involved to configur Work flow for the Release of Purchase orders? Yoga

  • How to open a LOV popup programatically?

    Hi All, I am using JDeveloper Version 11.1.1.1.0. I need to open LOV popup when pressing a push Button in my page. I am using (af:inputListOfValues) tag in .JSPX and (RichInputListOfValues) component in Backing Bean. Any help would be appreciated. Th

  • Need help creating folders

    I would like to have a folder called '2012' and inside it another folder called 'January' and inside it several folders titled with events like 'Mom birthday' or 'Dad birthday'. Can this be done in iPhoto? Thanks for any help or suggestions.

  • Sqlagent90.exe keeps running in a command window

    HELP!, This is annoying and beyond belief.  I installed SqlServer Developer edition without any problem than I installed SqlServer Express and now whenever I boot my PC, I have a command window that appear with nothing in it and the following title:

  • I need a full page bleed for an image!

    I've tried just about everything to figure this one out, but I'm starting to suspect the feature is just not available. I'm working on a book and will self publish it, so I need to put the illustrations into the body of the work. Which isn't hard to