/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
J2EE og MySQL
Fra : Daniel Jacobsen


Dato : 01-12-02 23:23

Hejsa

Er der nogen der ved, hvordan der skabes forbindelse fra en J2EE applikation
til en MySQL database?

Og nej, det er ikke som i en almindelig J2SE applikation !!!!!

Jeg tror det er noget med en descriptor-fil, men hvad skal der skrives?
Eller hvordan gøres det?

Mvh. Daniel J.



 
 
Thorbjoern Ravn Ande~ (02-12-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 02-12-02 10:47

"Daniel Jacobsen" <dj@g-a-f.dk> writes:

> Er der nogen der ved, hvordan der skabes forbindelse fra en J2EE applikation
> til en MySQL database?
>
> Og nej, det er ikke som i en almindelig J2SE applikation !!!!!
>
> Jeg tror det er noget med en descriptor-fil, men hvad skal der skrives?

Det er applikationsserverspecifikt.

Hvis det er lidt akut brandslukning kan du naturligvis goere det paa
saedvanlig non-J2EE vis, med at registrere JDBC driveren og aabne din
forbindlse direkte i koden, men saa faar du ikke fordelene ved
J2EE-serveren.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Daniel Jacobsen (02-12-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 02-12-02 14:43


> Hvis det er lidt akut brandslukning kan du naturligvis goere det paa
> saedvanlig non-J2EE vis, med at registrere JDBC driveren og aabne din
> forbindlse direkte i koden, men saa faar du ikke fordelene ved
> J2EE-serveren.
> --
> Thorbjørn Ravn Andersen
> http://unixsnedkeren.dk/ravn

Det foregår i et JBoss-miljø, med implementeret Tomcat og jeg vil helst gøre
det rigtigt.



Søren Berg Glasius (02-12-2002)
Kommentar
Fra : Søren Berg Glasius


Dato : 02-12-02 14:37

> Er der nogen der ved, hvordan der skabes forbindelse fra en J2EE
applikation
> til en MySQL database?
>
> Og nej, det er ikke som i en almindelig J2SE applikation !!!!!
>
> Jeg tror det er noget med en descriptor-fil, men hvad skal der skrives?
> Eller hvordan gøres det?
>

Hej

I din ejb-jar.xml skal du beskrive din datasource - dette er generisk for
alle AppServere og ser nogenlunde sådan ud:

<resource-ref>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

I din AppServer skal du beskrive specifikt, hvordan den skal levere
ovenstående datasource. I Tomcat 4 kunne det se sådan ud:

<Resource name="jdbc/myDataSource"
auth="Container"
type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/myDataSource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30000</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>100</value>
</parameter>
<parameter>
<name>username</name>
<value>myuser</value>
</parameter>
<parameter>
<name>password</name>
<value>mypassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/mydb</value>
</parameter>
<parameter>
<name>autoReconnect</name>
<value>true</value>
</parameter>
</ResourceParams>

og for at få en datasource bruger du f.eks:

javax.naming.Context ctx = new javax.naming.InitialContext();
if(ctx == null ) {
throw new javax.naming.NamingException("Boom - No Context");
}

return
(javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/myDataSource");

Håber det har kastet lidt lys over dit problem?

MVH
Søren Berg Glasius




Daniel Jacobsen (02-12-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 02-12-02 18:30

Nåh nu virker det. Følgende descriptor deployes:

<?xml version="1.0" encoding="UTF-8"?>

<server>

<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager"
name="jboss.jca:service=LocalTxCM,name=hsqldbDS">

<depends optional-attribute-name="ManagedConnectionFactoryName">

<!--embedded mbean-->

<mbean code="org.jboss.resource.connectionmanager.RARDeployment"
name="jboss.jca:service=LocalTxDS,name=MySQL">

<attribute name="JndiName">AdresserDB</attribute>

<attribute name="ManagedConnectionFactoryProperties">

<properties>

<config-property name="ConnectionURL"
type="java.lang.String">jdbc:mysql://localhost/adresser</config-property>

<config-property name="DriverClass"
type="java.lang.String">org.gjt.mm.mysql.Driver</config-property>

<!--set these only if you want only default logins, not through JAAS -->

<config-property name="UserName"
type="java.lang.String">username</config-property>

<config-property name="Password"
type="java.lang.String">password</config-property>

</properties>

</attribute>

<!--Below here are advanced properties -->

<!--hack-->

<depends
optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,n
ame=JBoss LocalTransaction JDBC Wrapper</depends>

<!--

<depends>jboss:service=Hypersonic</depends>

-->

</mbean>

</depends>

<depends optional-attribute-name="ManagedConnectionPool">

<!--embedded mbean-->

<mbean
code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"
name="jboss.jca:service=LocalTxPool,name=MySQL">

<attribute name="MinSize">0</attribute>

<attribute name="MaxSize">50</attribute>

<attribute name="BlockingTimeoutMillis">5000</attribute>

<attribute name="IdleTimeoutMinutes">15</attribute>

<attribute name="Criteria">ByContainer</attribute>

</mbean>

</depends>

<depends
optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedCo
nnectionManager</depends>

<depends
optional-attribute-name="JaasSecurityManagerService">jboss.security:service=
JaasSecurityManager</depends>

<attribute name="TransactionManager">java:/TransactionManager</attribute>

<!--make the rar deploy! hack till better deployment-->

<depends>jboss.jca:service=RARDeployer</depends>

</mbean>

</server>

Og så refereres der til databasen med: DataSource ds =
(DataSource)ic.lookup("java:/AdresserDB");







Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste