JDBC with MySQL

I am writing a Java Servlet that needs to connect to a MySQL database.
I would like to know which Java drive a need to use and also the java code that creates the connection on a Windows platform.
Thank you for your help.
Luis

This is a sample code. Try to have a look. And u also have to download MM-Mysql driver. Hope this helps u!
<%@ page import="java.util.*" %>
<%@ page import="star.utiltools.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<meta name="Microsoft Border" content="none">
<title>Log Monitor By MYSQL</title>
</head>
<body bgcolor="#E2E2E2">
<jsp:useBean id="MySQLListLoader" scope="session" class="star.utiltools.MySQLListLoader"/>
<jsp:setProperty name="MySQLListLoader" property="*"/>
<form name="infoForm" method=GET action="testTableListMySQL.jsp">
<font class="BODYHEADER">Log Monitor</font><BR>
<hr color="#008000" noshade size="1">
<%
//Set variable by request parameter
String DBColName = request.getParameter("colName");
String filterValue = request.getParameter("filterValue");
String filterCol = request.getParameter("filterCol");
Connection conn = null;
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
catch (Exception e) {
out.println("Unable to load driver." + e);
try {
conn = DriverManager.getConnection("jdbc:mysql://172.16.88.86/test");
catch (NullPointerException e) {
e.printStackTrace();
catch (SQLException e) {
SQLException sqle = new SQLException("Unable to make conn " + e.toString() );
out.println("Unable to make conn :" + e.toString() );
throw sqle;
catch (Exception e) {
Exception ee = new Exception("Connecting error :" + e.toString() );
out.println("Connecting error :" + e.toString() );
throw ee;
if(conn == null) throw new NullPointerException(" Connection fails ");
* Set Display Column Name
Vector displayColName = new Vector();
displayColName.addElement("System");
displayColName.addElement("Report Mode");
displayColName.addElement("Profile ID");
displayColName.addElement("Submit User");
displayColName.addElement("Status");
displayColName.addElement("Filename");
displayColName.addElement("Start Time");
displayColName.addElement("End Time");
displayColName.addElement("Comment");
displayColName.addElement("Reserved 1");
displayColName.addElement("Reserved 2");
* Core Part
try
MySQLListLoader.reset();
MySQLListLoader.setConnection(conn);
MySQLListLoader.setDefaultPage("testTableListMySQL.jsp");
MySQLListLoader.setDisplayColName(displayColName);
MySQLListLoader.setHeaderColor("bgcolor='#7DBEAA'");
MySQLListLoader.setBgcolor("bgcolor='#7DBEFF'" , "bgcolor='#C4E1FF'" ); // Set bgcolor
//Set SQL
MySQLListLoader.setSelectStat("SELECT * FROM SCHEDULELOG");
if(filterValue == null || filterCol == null || filterValue.equals("*") || filterValue.equals(""))
{MySQLListLoader.setWhereStat("WHERE 0 = 0 ");}
else
{ MySQLListLoader.setWhereStat("WHERE " + filterCol + "= '" + filterValue  + "'");}
if(DBColName == null)
{ MySQLListLoader.setDefaultOrderBy("SYSTEM"); }
else
{ MySQLListLoader.setDefaultOrderBy(DBColName);}
//Set for add new
MySQLListLoader.setAddNewLink("addnew.jsp?typr=add");
out.println(MySQLListLoader.generatedPage());
}catch(SQLException ex){
out.println("<BR>SQL Error in generated list : " + ex.toString());
}catch(Exception ex){
out.println("Error in generated list : " + ex.toString());
%>
</form>
</body>
</html>

Similar Messages

  • Need help setting up JDBC with mySQL and Netbeans

    I've successfully got mySQL up and running and created a few simple test databases. I've been following the instructions on this website (http://www.stardeveloper.com/articles/display.html?article=2003090401&page=1 ) to get JDBC working but have had little luck.
    I've downloaded JDBC from mySQL website, extracted the mysql-connector-java-3.1.13-bin.jar file and changed the class path to :
    C:\Program Files\Java\jre1.5.0_06\lib\ext\mysql-connector-java-3.1.13-bin
    which is where I placed the .jar file.
    I then used the following code provided on stardeveloper.com to test a connection with the test database.
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class JdbcExample2 {
      public static void main(String args[]) {
        Connection con = null;
        try {
          Class.forName("com.mysql.jdbc.Driver").newInstance();
          con = DriverManager.getConnection("jdbc:mysql:///test",
            "root", "secret");
          if(!con.isClosed())
            System.out.println("Successfully connected to " +
              "MySQL server using TCP/IP...");
        } catch(Exception e) {
          System.err.println("Exception: " + e.getMessage());
        } finally {
          try {
            if(con != null)
              con.close();
          } catch(SQLException e) {}
    }It compiles but when run I get the error message :
    java.lang.NoClassDefFoundError: testdatabase/JdbcExample2
    Exception in thread "main"I assume this means that my classpath isn't setup correctly but I have no idea what's up and how to correct it.
    Can someone PLEASE tell me how to setup jdbc and what I've done wrong.
    Thanks in advance :)

    Thanks for your reply. I've made some progress but I'm still having problems.
    In mySQL I created a new user called uraknai with password n0121429 and granted them access to a test database I created called pet.
    Then, in netbeans, I clicked the Runtime tab, clicked Databases and rightclicked Drivers and clicked Add Driver. I then added the driver mysql-connector-java-3.1.13-bin.jar. I then right clicked the newly added driver and selected the connect using option. I filled in the appropriate boxes clicked ok and it connected successfully.
    Then, under the project tab, I right clicked the project name, clicked properties then clicked Libraries and added the .jar file mysql-connector-java-3.1.13-bin.jar
    I then ran the following code to test the connection to the database:
    import java.sql.*;
    public class ConnectionTest {
        public ConnectionTest() {
        public static void main(String[] args)
            System.out.println("BEGIN CONNECTION TEST");
            Connection conn = null;
            try
                   String userName = "uraknai";
                   String password = "n0121429";
                   String url = "jdbc:mysql://localhost/pet";
                   Class.forName ("com.mysql.jdbc.Driver").newInstance ();
                   conn = DriverManager.getConnection (url, userName, password);
                   System.out.println ("Database connection established");
             catch (Exception e)
                   System.err.println ("Cannot connect to database server");
             finally
                   if (conn != null)
                       try
                           conn.close ();
                           System.out.println ("Database connection terminated");
                       catch (Exception e) { /* ignore close errors */ }
    }and get the message:
    java.lang.NoClassDefFoundError: math/ConnectionTest
    Exception in thread "main"
    Java Result: 1when I run the code.
    Can someone explin what I've done wrong and how to fix the problem.
    Cheers.

  • JDBC with mysql server

    I installed mysql on windows 2000 pro.
    and run mysql as standalone (mysqld --standalone).
    so what is the default url address of mysql?
    is it localhost:3306?
    the following is my coding:
    public String validateUser(String inputUserid, String inputPwd)
         String returnString = null;
         String dbUserid = "userid"; // Your Database user id
         String dbPassword = "password" ; // Your Database password
         Connection con=null;
         ResultSet rs=null;
         Statement stmt=null;
         try {
         Class.forName("org.gjt.mm.mysql");
         con = DriverManager.getConnection("192.168.0.4:3306",
                                  dbUserid ,dbPassword );
         stmt = con.createStatement();
         String sql= "select USERID from USERTABLE where USERID = '"+inputUserid+"' and PASSWORD = '"+inputPwd+"';";
         rs = stmt.executeQuery(sql);
         if (rs.next())
         returnString = rs.getString("USERID");
         stmt.close();
         catch (ClassNotFoundException e){}
         catch (SQLException eee) {}
         try{
         if (con!=null)     
                             {con.close();}
         catch (SQLException ee) {}
         return returnString ;
    Got the error : not Suitable Driver!
    why? please help!

    try {
    Class.forName("org.gjt.mm.mysql");
    con = DriverManager.getConnection(
    "192.168.0.4:3306",
    dbUserid ,dbPassword );Try replacing 'org'gjt.mm.mysql' with
    'sun.jdbc.mysql.Driver'i don't have the driver of 'sun.jdbc.mysql.Driver, in which package or where to download?
    but the driver of org.gjt.mm.mysql is what i downloaded from mysql.com, which should be suitable for jdbc! and I also try Class.forName("org.gjt.mm.mysql.Driver"). it doesn't work as well.!!
    please help!!
    and what is the default url address of mysql server?

  • JDBC with MySql installation

    Can anyone give me a step by step idea on how ti connect JDBC (that I have just downloaded) on Win2000 pro and jdk1.3.1_04?

    For MySQL? Check here for excellent documentation:
    http://dev.mysql.com/doc/connector/j/en/index.html

  • Problem with USERNAME & PASSWORD creation--JDBC connection with MYSQL

    How to connect to JDBC with Mysql Connector
    i installed mysql & created table, it works fine
    During Password---> I gave it as tiger , no username
    i installed mysql connector
    i saved the .jar file path in class path
    HOW TO CREATE USERNAME & PASSWORD & DATASOURCE NAME ---> Is it the password -tiger or something else like (ADMinstrative tools-ODBC-services--etc )
    Pl, help,
    tks
    Xx

    How to connect to JDBC with Mysql Connector
    i installed mysql & created table, it works fine
    During Password---> I gave it as tiger , no usernameTiger? This ain't Oracle.
    I think you should give a username and password. How can it look up a password without a username? Better GRANT the right permissions, too.
    Read the MySQL docs a bit more closely. Your path isn't the way to go.
    %

  • JDBC with Embedded mysql

    Hi,
    i'd like to use JDBC connection with Mysql which is embedded in my application(not client/server version).How can i code to connect my application to such embedded server.
    Can anyone help me.Thanx in advance...

    Hi,
    i'd like to use JDBC connection with Mysql which is
    embedded in my application(not client/server
    version).How can i code to connect my application to
    such embedded server.
    This might be possible with a lot of work. And a non-trivial amount of code in C/C++. If you are not experienced with C/C++ then I would not suggest that you try this.
    This implies that MySQL is running in the same process space as the jvm. That means that you will need to write a shell in C/C++ that starts the JVM and starts MySQL. Starting the JVM in C/C++ is detailed in the JNI. It should certainly be possible to start MySQL from your own C/C++ code, but you would have to track down the documentation to do it.
    Starting this up is going to take as much time as starting the JVM and MySQL server together.
    You could still use the same jdbc driver or you could modify it (with a lot of work) to go direct.

  • Can' t connect Java with MySQL

    My goal is to connect Java with MySQL. I found many solutions on Internet, but I always get the same mistake:
    SQLException: No suitable driver
    SQLState: 08001
    VendorError: 0MySQL works fine alone or with php.Only thing left me to think is that the installed versions are not compatible for this mysql-connector-java-5.0.4
    I don't believe that could be a reason.
    Installed versions are:
    Apache Tomcat 5.5.20 Server
    Apache HTTP Server 2.2.4
    PHP 5.2.0
    MySQL 5.2
    jre 1.5.0_11
    jdk1.5.0_11
    Apache Tomacat JK2 connector Version: 1.2.20 File Name: mod_jk-apache-2.2.3.so
    mysql-connector-java-5.0.4
    I also set connector in class path: C:\mysql-connector-java-5.0.4;C:\mysql-connector-java-5.0.4\mysql-connector-java-5.0.4-bin.jar;C:\mysql-connector-java-5.0.4\src\com\mysql\jdbc
    For installation I used manulas from:
    http://apacheguide.org/jsp.php
    http://doc.51windows.net/mysql/?url=/MySQL/ch23s03.html
    Here is also a test code in java:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
       public class Connect
           public static void main (String[] args)
               Connection conn = null;
               try {
        conn =
           DriverManager.getConnection("jdbc:mysql://localhost/first_test" +
                                       "user=monty&password=greatsqldb");
        // Do something with the Connection
    } catch (SQLException ex) {
        // handle any errors
        System.out.println("SQLException: " + ex.getMessage());
        System.out.println("SQLState: " + ex.getSQLState());
        System.out.println("VendorError: " + ex.getErrorCode());
       }i'm desperate, please help or tell me someone who'll know the answer.
    Thank You in advance

    hey buddy .. it seems yr code is wrong .. in getconnection () method u should also specify the port ,which u r not doing ...
    the default port for MySQL is 3306 ... see below i am giving you a sample code ... its working fine .. and dont forget to put the MySQL driver jar path in to classpath and also copy the jar into common/lib folder of your tomcat ....
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class MySQLConnectionTest {
         public static void main(String[] args) {
    new MySQLConnectionTest().connTest();
    public void connTest() {
              String tableName = "portfolio"; //change as per setting
              String hostName = "10.81.9.39"; // please change for the target database ip or hostname
              String dbPort = "3306"; //change if not using the default
              String dbName = "tradingsystem"; //change as per the given DB name
              String username = "root"; //change as per setting
              String password = "password"; //change as per setting
              System.out.println("before try");
              Double data=0.0;
         Double data1=0.0;
              try {
    Class.forName("org.gjt.mm.mysql.Driver");
                   System.out.println("before driver manager");
    Connection conn = DriverManager.getConnection("jdbc:mysql://"+hostName+":"+dbPort+"/"+dbName, username, password);
    String query1 = "select * from "+tableName+" where User_id='trader1' and Stock_Type='Equity'";
    System.out.println("quesry1="+query1);
    Statement stmt = conn.createStatement();
    ResultSet rs1 = stmt.executeQuery(query1);
    while(rs1.next())
         System.out.println("hiiiiii for rs1");
         System.out.println(rs1);
         Quantity=(Integer)rs1.getObject(5);
         MarketPrice=(Double) rs1.getObject(8);
         data=Quantity*MarketPrice;
         data1+=data;
         System.out.println("data1="+data1);
         i=0;
    rs1.close();
    stmt.close();
    conn.close();
    } catch (ClassNotFoundException e) {
    e.printStackTrace(System.err);
    } catch (SQLException e) {
    e.printStackTrace(System.err);
    i hope it will work for u...
    cheers,

  • JDeveloper 10.1.2 with MySQL and PostgreSQL

    I'm testing JDeveloper 10.1.2 business components with mysql or postgresql because my company needs to connect also to these non-oracle DBs. ADF suits our developement needs, in speed and functionalities; anyway to make it our main developement system we need it to be compatible.
    I made three tests and they were all disappointing.
    At first, I installed MySQL 4.0 on my windows machine. I used the stable Connector/J 3.1
    and then MySQL Connector/J 3.0, but in both cases JDeveloper had a strange behaviour: I can make the connection, I can navigate correctly through all tables in the connection-navigator, I see all the column names etc... Anyway, as I try to build a "new Entity Object" from a table, there are no available table properties, like if the table had no columns.
    In this forum I only found documentation about rowid problems with mysql, but nothing about Entity Object wizard issues.
    Then I switched to PostgreSQL. I installed it locally, so I had to choose the 8.01 since I'm on a windows machine. JDBC driver: postgresql-8.0-310 jdbc3
    The developement test phase went ok, it is possible to use this DB just as if it was a Oracle, all the business components wizards works perfectly.
    The problem is at runtime, unfortunately. I built a simple datapage on the struts-config diagram and I dragged on it a "read-only table" from the data control palette.
    As I run the application, the embedded OC4J immediately returns this error:
    oracle.jbo.JboException: JBO-29000: JBO-29000: JBO-29000: JBO-26061: Errore durante lapertura della connessione JDBC.
    at oracle.jbo.JboException.<init>(JboException.java:343)
    (in english: Error during JDBC connection)
    There are no other available JDBC drivers for JVM 1.4x so I see no solution...
    I also tried to connect to an older PostgresSQL with its (older) JDBC but I get same the result.
    Anyone can help? Is it a JDev 10.1.2 issue?

    Hi Paolo.
    I'm also doing such tests.
    I did not ran into these problems because I created the busisness componentes using an Oracle connection first.
    After that, I switched the datatype of the table columns in the entity object to meet the SQL92 criteria ( like changing NUMBER(n) to INTEGER ).
    And then, I switched the connection to the postgreSQL or MySQL. This worked fine for me.
    But, the other big problem you will face is related to updating records using postgreSQL connection.
    Please see my post "Problem updating records using BC4J with foreign data sources" Problem updating records using BC4J with foreign data sources
    It would by fine if we help each other to solve this problems.
    Thanks
    Denis

  • Java with MYSQL in Linux

    i am using JSP in Linux Platform. when i connected to mysql with mysql driver for odbc by using the following code,
    import java.sql.*;
    public class TestMysql
    public static void main(String args[]) {
    try {
              Connection con;
              String connStr = "jdbc:mysql://localhost/test?user=root&password=mysql";
              Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
              System.out.println("OK");
              con = DriverManager.getConnection( connStr );
              System.out.println("Again OK");
    catch( Exception x )
    x.printStackTrace();
    i got the following exception
    OK
    java.sql.SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null
    Nested Stack Trace:
    ** BEGIN NESTED EXCEPTION **
    java.io.CharConversionException
    STACKTRACE:
    java.io.CharConversionException
    at gnu.gcj.convert.Input_iconv.read(char[], int, int) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.String.init(byte[], int, int, java.lang.String) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.String.String(byte[], int, int, java.lang.String) (/usr/lib/libgcj.so.5.0.0)
    at com.mysql.jdbc.SingleByteCharsetConverter.SingleByteCharsetConverter(java.lang.String) (Unknown Source)
    at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(java.lang.String) (Unknown Source)
    at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(java.lang.String, com.mysql.jdbc.Connection) (Unknown Source)
    at com.mysql.jdbc.Connection.getCharsetConverter(java.lang.String) (Unknown Source)
    at com.mysql.jdbc.StringUtils.getBytes(java.lang.String, java.lang.String, java.lang.String, boolean, com.mysql.jdbc.Connection) (Unknown Source)
    at com.mysql.jdbc.Buffer.writeStringNoNull(java.lang.String, java.lang.String, java.lang.String, boolean, com.mysql.jdbc.Connection) (Unknown Source)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(com.mysql.jdbc.Statement, java.lang.String, java.lang.String, com.mysql.jdbc.Buffer, int, com.mysql.jdbc.Connection, int, int, boolean, java.lang.String, boolean) (Unknown Source)
    at com.mysql.jdbc.Connection.execSQL(com.mysql.jdbc.Statement, java.lang.String, int, com.mysql.jdbc.Buffer, int, int, boolean, java.lang.String, boolean, boolean) (Unknown Source)
    at com.mysql.jdbc.Connection.configureClientCharacterSet() (Unknown Source)
    at com.mysql.jdbc.Connection.initializePropsFromServer() (Unknown Source)
    at com.mysql.jdbc.Connection.createNewIO(boolean) (Unknown Source)
    at com.mysql.jdbc.Connection.Connection(java.lang.String, int, java.util.Properties, java.lang.String, java.lang.String) (Unknown Source)
    at com.mysql.jdbc.NonRegisteringDriver.connect(java.lang.String, java.util.Properties) (Unknown Source)
    at java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties) (/usr/lib/libgcj.so.5.0.0)
    at java.sql.DriverManager.getConnection(java.lang.String) (/usr/lib/libgcj.so.5.0.0)
    at TestMysql.main(java.lang.String[]) (Unknown Source)
    ** END NESTED EXCEPTION **
    at com.mysql.jdbc.Connection.execSQL(com.mysql.jdbc.Statement, java.lang.String, int, com.mysql.jdbc.Buffer, int, int, boolean, java.lang.String, boolean, boolean) (Unknown Source)
    at com.mysql.jdbc.Connection.configureClientCharacterSet() (Unknown Source)
    at com.mysql.jdbc.Connection.initializePropsFromServer() (Unknown Source)
    at com.mysql.jdbc.Connection.createNewIO(boolean) (Unknown Source)
    at com.mysql.jdbc.Connection.Connection(java.lang.String, int, java.util.Properties, java.lang.String, java.lang.String) (Unknown Source)
    at com.mysql.jdbc.NonRegisteringDriver.connect(java.lang.String, java.util.Properties) (Unknown Source)
    at java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties) (/usr/lib/libgcj.so.5.0.0)
    at java.sql.DriverManager.getConnection(java.lang.String) (/usr/lib/libgcj.so.5.0.0)
    at TestMysql.main(java.lang.String[]) (Unknown Source)
    i have the database, hello.
    The same code works well in Windows, But in Linux, the above exception.
    By using the username root and password mysql , i can connect to mysql directly from the mysql prompt.
    Pls help me..
    I have already put the query 'access denied problem in Mysql' some day before. from the reply, i made some changes in user table(ie. set the password for [email protected].).After this change, this new Exception came..
    The structure of my mysql.user table is
    #     host                         user          password
    1     localhost                    root          68d4f47c49a579c9
    2     localhost.localdomain          root          68d4f47c49a579c9
    3     localhost.localdomain          
    4     localhost          
    Pls help me.
    Edited by: SUMESHBABU_R on Sep 30, 2007 11:36 PM

    Well, at least the trace tells me that this issue is to be tracked back to the core of the MySQL JDBC driver and the Linux's implementation of JVM. It might be worth the effort to post this issue at their website/forum/issuetracker. It might also be worth the effort to tryout the newer MySQL JDBC driver 5.1, as it is written specific for JDK 6.0 (while MySQL JDBC driver 5.0 is targeted at JDK 5.0).

  • Clob mapping not working with mysql

    Hi,
    I have an application that i'm running with MySQL and Oracle at the same
    time. At some point, i need to use a 'clob' mapping. When i do this, it
    just works fine with oracle but it fails with mysql. i have the exception:
    Field "com.ennov.prisma.api.document.jdo.AbstractDocumentPO.description"
    is mapped as a clob, but should be represented as a different mapping.
    If the field is a string and you would like to force it to map as a
    clob, add an extension to its field metadata with a key of "jdbc-size"
    and a value of
    -1.[com.ennov.prisma.api.document.jdo.AbstractDocumentPO.description]
         at kodo.jdbc.meta.Mappings.invalidMapping(Mappings.java:132)
         at kodo.jdbc.meta.Mappings.invalidMapping(Mappings.java:118)
         at
    kodo.jdbc.meta.ClobFieldMapping.fromMappingInfo(ClobFieldMapping.java:46)
    if i use a value mapping, it works with MySQL but fails with Oracle (I
    have sql error because a clob is used in a distinct select).
    In the manual, it is written "Note that some databases can support
    string of unlimited length without using a CLOB; when this is the case
    the mapping tool will install a value mapping in favor of
    this mapping.". So apparently, this is not the case with MySQLDictionary.
    To solve my problem and have my code working with both databases, i had
    to extend the MySQLDictionary and overwrite the replaceFieldMapping
    method in order to replace the clob mapping by a value mapping at
    runtime but i don't feel confident to do this kind of modifications by
    mysel and would expect this behaviour to be solved quite soon.
    Thanks for your help since this problem is urgent for us,
    Laurent Czinczenheim

    Laurent-
    The best solution would probably be to just have separate mappings for
    the MySQL and Oracle databases. The easiest way to accomplish this would
    be to have a separate setting for each of the databases. E.g.:
    kodo.jdbc.meta.MappingFactory: file(SingleFile=true, FileName=oracle.mapping)
    kodo.jdbc.meta.MappingFactory: file(SingleFile=true, FileName=mysql.mapping)
    That way, you can use a clob mapping for Oracle, and a normal value
    mapping for MySQL (since MySQL doesn't need to use the CLOB mapping, and
    it isn't very efficient).
    For more details on this, see:
    http://docs.solarmetric.com/manual.html#ref_guide_mapping_factory
    Another solution is to just stick with your custom extension of the
    MySQLDictionary, which is a perfectly valid way of having special CLOB
    handling in MySQL. Note, though, that CLOB handling is less efficient
    than VARCHAR handling, so it should be a mapping of last resort, and
    there isn't any need to use it in MySQL.
    In article <[email protected]>, czinczenheim wrote:
    Hi,
    I have an application that i'm running with MySQL and Oracle at the same
    time. At some point, i need to use a 'clob' mapping. When i do this, it
    just works fine with oracle but it fails with mysql. i have the exception:
    Field "com.ennov.prisma.api.document.jdo.AbstractDocumentPO.description"
    is mapped as a clob, but should be represented as a different mapping.
    If the field is a string and you would like to force it to map as a
    clob, add an extension to its field metadata with a key of "jdbc-size"
    and a value of
    -1.[com.ennov.prisma.api.document.jdo.AbstractDocumentPO.description]
         at kodo.jdbc.meta.Mappings.invalidMapping(Mappings.java:132)
         at kodo.jdbc.meta.Mappings.invalidMapping(Mappings.java:118)
         at
    kodo.jdbc.meta.ClobFieldMapping.fromMappingInfo(ClobFieldMapping.java:46)
    if i use a value mapping, it works with MySQL but fails with Oracle (I
    have sql error because a clob is used in a distinct select).
    In the manual, it is written "Note that some databases can support
    string of unlimited length without using a CLOB; when this is the case
    the mapping tool will install a value mapping in favor of
    this mapping.". So apparently, this is not the case with MySQLDictionary.
    To solve my problem and have my code working with both databases, i had
    to extend the MySQLDictionary and overwrite the replaceFieldMapping
    method in order to replace the clob mapping by a value mapping at
    runtime but i don't feel confident to do this kind of modifications by
    mysel and would expect this behaviour to be solved quite soon.
    Thanks for your help since this problem is urgent for us,
    Laurent Czinczenheim
    Marc Prud'hommeaux
    SolarMetric Inc.

  • About using hibernate with mysql

    hi all,
    i have used hibernate with hsqldb(database given by default) and it works fine.but when i tried to use it with mysql then i have encountered a problem
    xception
    org.hibernate.TransactionException: Transaction not successfully started
         org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:149)
         events.EventManagerServlet.doGet(EventManagerServlet.java:63)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    though i have put jar file of mysql in lib directory and changed the driver name in hibernate.cfg.xml.
    can any one place some example illustrating the steps involving.thanx

    Hi smogura,
    Thanks for the message. Ok I did as you told. I believe I went to the right place:
    Resource->JDBC Connection pools. However I wasn't sure how exactly to go about setting connection pools,
    so I went to the web and did a search and I managed to get hold of this
    website:http://www.albeesonline.com/blog/2008/08/06/creating-and-configuring-a-mysql-datasource-in-
    glassfish-application-server/
    I followed from steps 4 onwards. However at step 14, I did not get a sucesfull ping. The values I used are as follows:
    General:
    Name:               MySQL
    Datasource Classname:     com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
    Resource Type:           javax.sql.ConnectionPoolDataSource
    Advanced Properties:
    databaseName:      ebooking
    ServerName:     GlassFish
    URL          jdbc:mysql://localhost:3306/ebooking
    password          *****
    user:          1234
    I am not sure what is wrong, by the way, I am using Glassfish V3 that comes bundled with netbeans. Any idea what's wrong or missing? Thanks
    regards

  • Reconnect policy with MySQL failing because of autoCommit error

    This related to this issue, but I didn't see any responses to it: Reconnecting a dead connection from a UnitOfWork commit - Autocommit error
    I'm testing with MySQL 4.1 and I have a reconnect policy that does the following (I believe this is a pretty standard approach):
    session.setExceptionHandler( new ExceptionHandler() {
    public Object handleException(RuntimeException exception) {
         if (exception instanceof DatabaseException) {          
    dbex.getAccessor().reestablishConnection(dbex.getSession());
    However, when it reestablishes the connection (and I have traced this and can verify that this code is executing and a reconnect is performed), I get the following error for any updates:
    Internal Exception: java.sql.SQLException: Can't call rollback when autocommit=trueError Code: 0
    at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:277)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicRollbackTransaction(DatabaseAccessor.java:1090)
    at oracle.toplink.internal.databaseaccess.DatasourceAccessor.rollbackTransaction(DatasourceAccessor.java:486)
    at oracle.toplink.internal.databaseaccess.DatabaseAccessor.rollbackTransaction(DatabaseAccessor.java:1075)
    at oracle.toplink.publicinterface.Session.basicRollbackTransaction(Session.java:377)
    I only have this problem with the MySQL JDBC drivers. I can continue to read normally, but I can't perform any transactions.
    This isn't so much of a question about MySQL specifically, but rather a question about how reestablishConnection() connects to the database differently from my initial login using DatabaseLogin. Obviously, I don't have this error connecting normally. I only get it after a reconnect is applied.
    Specific questions are: Is there another handler I can add to ensure JDBC Connections returned by ServerSession are always setAutoCommit(false)? Am I reestablishing the JDBC connections incorrectly?
    Nate

    Nate,
    This does appear to be MySQL JDBC specific but is most likely related to a general issue.
    When the connection drops and you receive the notification through the exception handler I would typically recommend looking at the session in us (isUnitOfWork) or the query type (isWriteObjectQuery) to see if the operation that failed was involved in a transaction (UnitOfWork commit).
    In these transaction cases you need to do more then just re-connect and retry. You need to ensure after reconnection that an application exception is raised so the UnitOfWork operation(s) can be retried completely. I would simply add to this case to ensure that the JDBC connection is put back in a state where it can be managed properly.
    There is no special operation or any case I know of where any special auto-commit needs to be set on a connection after it has dropped and before it is re-connected.
    Doug

  • ExecuteQuery() error with MySQL

    I have already followed all the steps recommended by OTN to create a connection with MySQL (most up-to-date files) in JDeveloper 10g. It works fine except when I try to find a view and execute a query using an Application Module in a jsp:
    ApplicationModule appMod = appMod.getGenericAppMod();
    ViewObject voTabEmployee = appMod.findViewObject("TabEmployee");
    voTabEmployee.executeQuery();
    It works ok when connected to Oracle DB but it raises the following exception when I move Business Components to a MySQL connection, exactly as recommended:
    java.lang.ClassCastException: com.mysql.jdbc.ServerPreparedStatement
    Any help would be highly appreciated.
    Marcio

    Hi Marcio
    The ApplicationModule that you create in your source (utilApp.java) is created using the default configuration that uses the OracleSQLBuilder as the default SQLBuilder (configured to work with Oracle Databases). Thus, when you use MySQL or any other database (and I confirmed this using SQLServer), a ClassCastException is thrown.
    Instead of using the following lines:
    Context ic = new InitialContext(env);
    String theAMDefName = "mysysjcom.MySysJComModule";
    ApplicationModuleHome home = (ApplicationModuleHome) ic.lookup(theAMDefName);
    ApplicationModule appMod = home.create();
    appMod.getTransaction().connectToDataSource(null, "jdbc/MYSYSJCOMCoreDS", false);
    can you use the following lines:?
    Context ic = new InitialContext(env);
    String theAMDefName = "mysysjcom.MySysJComModule";
    ApplicationModule appMod = Configuration.createRootApplicationModule(theAMDefName, <config_name>);
    ic.lookup(theAMDefName);
    I got your sample working with the above change
    This will ensure that you are using the same configuration that has the SQLBuilder correctly set to your Database type
    Thanks
    Prasanth

  • JDBC and MySQL connectivity problem

    The code i hav attached generates Connectivity exception.. the prob is with the part in bold.. can anyone help
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class testconn {
      public static void main(String args[]) {
        Connection con = null;
                String serverName = "localhost:8080";
            String mydatabase = "imagedb";
            String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
            String username = "am";
            String password = "ta";
        try {
          Class.forName("com.mysql.jdbc.Driver");
         con= DriverManager.getConnection(url, username, password);
          if(!con.isClosed())
            System.out.println("Successfully connected to " +
              "MySQL server using TCP/IP...");
        } catch(Exception e) {
          System.err.println("Exception: " + e);
        } finally {
          try {
            if(con != null)
              con.close();
          } catch(SQLException e) {}
    }

    I had such issue too, and I fixed it by adding in the environment variables the CLASSPATH entry that pointed to all the directories containing the .jar needed for the applications.
    for example I used jodbc folder to connect mysql database (I installed last version and I got same issue than yours and it seems to be a 'connector' issue, exactly the same issue than yours) I got something like
    CLASSPATH=my root dir/the java dir/the lib dir/jodbc;my root dir/the java dir/other important libs containing .jar files;
    This is what I got for the issue, still working around (at the level of mysql all is ok, ...)
    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    C:\Documents and Settings\Hurukan>java ConnectJODBC brol
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at ConnectJODBC.main(ConnectJODBC.java:108)
    [exception] -- la valeur de 'con' est nulle (DriverManager � retourn� une valeur
    nulle)
    C:\Documents and Settings\Hurukan>set
    APPDATA=C:\Documents and Settings\Hurukan\Application Data
    CLASSPATH=c:\Program Files\Java\jdk1.5.0_06\lib;c:\Program Files\Java\jdk1.5.0_06\dev;\c:\Program Files\Java\jdk1.5.0_06\lib\jodbc;
    Here is the code that generated this exception
    String dburl="jdbc:mysql://127.0.0.1/nosdisques"; // should be next passed by command line
    String password="**scrambled**";
    String username="**scrambled**";
    Connection con=null;
    Statement stmt=null;
    ResultSet res=null;
    String requete="";
    String strToWrite="";
    // Connexion � la base de donn�e
    // Won't work with mysql 5.0.18, mysql connector 3.51.12 is installed [???]
    // Previous tests with 5.0.18 were running good, that has started with the last os restoration (and the connector was different of course...)
    // tried to retreive older version of the mysql connector
    try
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    con=DriverManager.getConnection(dburl,username,password);
    System.out.println("Nous sommes connect\u201as \u2026 la base " + con.getCatalog());
    catch(SQLException sqlex)
    System.out.println("[sqlexception]\n");
    System.exit(3);
    catch(Exception ex)
    ex.printStackTrace();
    if(con == null)
    System.out.println("[exception] -- la valeur de 'con' est nulle (DriverManager \u2026 retourn\u201a une valeur nulle)\n");
    System.exit(4);
    System.out.println("Impossible to join database, access denied\n");
    System.out.println("Verify settings (mysqld or firewall)\n"); System.exit(2);
    Maybe the drivers used (last one: connector/j 3.1.12). The .jar file is in the %classpath% directory c:\Program Files\Java\jdk1.5.0_06\lib.
    Can't really understand why this code won't run anymore, ...
    I took a look on the other computer where the same code is running ok.
    These are the differences:
    mysql server is 5.0.18 on the other computer the version is 3.23.41
    mysql connector is 3.51.12 on the other computer the version is 3.0.10
    access rights are the same because the database is the dumped one from 3.23.41 to 5.0.18, and I'm quite good with the dbms management (I'm IT developper in fact, trying to take over java technology ;) )
    in this case this is not a sql error but java error.
    the jar file is set to the %classpath% folder on both computers
    I copied the jar from the other computer, removing the new .jar file and... it failed, exactly the same issue
    Still working around, ...
    Dimitri

  • Hoe to connect java with mysql 5.0

    I have installed the new Os. in that RHE-5 Os is there, now I want that java can connect ot mysql but , its not able connect with mysql so please guide me.

    1) download mysql connector/J JDBC driver from mysql.com
    2) put the driver jar somewhere where you can put it in the classpath of your application
    3) use proper setup code to connect to the database (search google, tons of examples)
    If at any step you have no clue what I am talking about, you need a good book to help you further.

Maybe you are looking for

  • Error occurred in download motion 5

    While updating Motion 5 it directed me to download from the Purchases page but it keeps giving error that "error ocurred in download". I have now deleted the Motion 5 application from Application folder and from the trash and still I can not download

  • XI system Daily health check

    Hi Gurus, We have huge production setup, so its high time for us to come up with detailed 'Daily XI systems health check-out' and have pro-active monitoring these systems. So requesting you to, please help me with items/areas those needs to be checke

  • JCOP Tools init-update problem

    Hello, everybody!!! I wanna simulate CardManager authentication behaviour and have some problems... Below i show you excerpts from my applet and the process of sending INITIALIZE UPDATE command to it using JCOP Shell. If somebody has an idea to deal

  • Itunes 10.5.26 install

    When attempting to install itues 10.5.26 the install package says my itunes64.msi file is not valid.  I have tried downloading the the full installation package to the desktop first rather than running online.  it still will not let me use the msi fi

  • Problemas con ALV

    Hola a todos, quisiera saber si utilizando la siguiente función 'REUSE_ALV_GRID_DISPLAY' es posible de alguna manera cambiar la altura de las lineas , me interesa sobre todo a efectos de impresión. gracias.