Hali!
Nemrég gondoltam belekóstolok kicsit a JSP-be. A gondom az lenne, hogy képtelen vagyok JSPből a MySQL szerverhez csatlakozni.
Túrtam a netet, rengeteg doksit találtam. A gond az, hogy ahány doksi, annyiféle megoldást javasol.
Tehát nem tudtam dűlőre jutni, pedig már pár napja próbálkozok.
Ahogy láttam a kódokat, elsőre az lenne a legjobb szvsz, ha a JSTL-t használva tudnék csatlakozni.
(De igazából első nekifutásra bármilyen működőképes MySQL kapcsolódási példának örülnék.)
Tehát a kér(d)ésem: valaki, akinek már sikerült, le tudná írni normálisan, hogy mit hol kell szerkesztgetni, hogy egy mezei JSPből el tudjam érni a MySQL-t?
Megköszönném... :)
kl223
- 1719 megtekintés
Hozzászólások
Minimum kell egy JDBC driver:
http://dev.mysql.com/downloads/connector/j/3.1.html
Ezzel kapcsolódsz az adatbázishoz:
http://java.sun.com/j2se/1.3/docs/guide/jdbc/getstart/connection.html
A JSTL alapvetően más, nincs közvetlen kapcsolata az adatbáziskezeléssel. Nyilván elképzelhető, hogy később szükséged lesz rá
- A hozzászóláshoz be kell jelentkezni
Thx a linkeket. MySQL connectorom volt már, de a második doksit nem láttam még...
A JSTL valóban más, persze az egy alap library, csak a neten azt láttam, hogy JSTL-hez különféle XML fájlokban kell dolgokat belőni, és akkor meg lehet oldani pl. connection poolinget, etc.
És ez volt a gondom, hogy nem tudtam sehogy rávenni, hogy kapcsolódjon a MySQL-hez, mivel 5 doksi 6féleképpen írta le a különféle XML-szerkesztéseket meg kódokat.
Nah de akkor meglesem azt a tutorialt először, és utána később foglalkozok a JSTL-lel.
Thx még1x.
kl223
- A hozzászóláshoz be kell jelentkezni
Hali!
Nah megvan minden. Végülis kibogarásztam. Leírom itt egyben hogy meglegyen. (nálam ez tomcat 5.5.9-el és mysql 5.0.15-el működött.)
Egy apróság: mivel másképp nem jelent meg rendesen itt a fórumon, minden kezdő < jel után beírtam egy szóközt. Annak nem kell ott lennie, azt ki kell szedni, mikor a fájlokba írjuk be.
1) Első lépés: /etc/mysql/my.cnf. Itt a köv. sort kell ki#ezni:
skip-networking
2) Ezután le kell szedni a MySQL drivert, a JSTL-t és egyéb cuccokat a poolinghoz. http://dev.mysql.com/downloads/connector/j/3.1.html : MySQL java connector.
http://jakarta.apache.org/site/downloads/index.html : minden egyéb ami kellhet,
konkrétan a JSTL: http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi és a poolingos cucc: http://jakarta.apache.org/site/downloads/downloads_commons-dbcp.cgi de ennek vannak függőségei is, lsd. a README fájlját.
3) A letöltött cuccokat a tomcat_dir/common/lib alá kell bepakolni (a jar fájlokat nyilván).
4) Tomcat restart. Ezután így lehet a JSTL-t elérni a JSP lapokról:
< %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
< %@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
5) a server.xml-t kell szerkeszteni, ez a tomcat_dir/conf alatt van.
Be kell szúrni a "< GlobalNamingResources>" részbe a köv. rekordot:
< Resource
name="jdbc/hivatkozási_név"
type="javax.sql.DataSource"
password="jelszo"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="usernév"
url="jdbc:mysql://localhost:3306/adatbázisnév"
maxActive="4"/>
6) Még1 tomcat restart. Ezután már a saját webes alkalmazásunk META-INF könyvtárában ténykedünk, a context.xml fájlban.
A köv. sort kell beszúrni a < Context> részbe:
< ResourceLink name="jdbc/hivatkozási_név" type="javax.sql.DataSource" global="jdbc/hivatkozási_név"/>
Tehát ezután hasonló módon kell kinéznie a context.xml ezen részének:
< Context>
< ResourceLink name="jdbc/hivatkozási_név" type="javax.sql.DataSource" global="jdbc/hivatkozási_név"/>
< /Context>
Megjegyzés: nyilván megeshet, hogy nem volt eddig semmi a < Context> részben ezért az így nézett ki: "< Context ... />". Ez esetben át kell alakítani kicsit egy < /Context> beszúrásával és a sorvégi záró "/>" átírásával, ahogy a fenti részleten is látszik.
7) Ezek után elviekben semmilyen "előkészület" (azaz semmiféle "< sql:setDataSource .../>" sor) nem szükséges, hanem nyugodtan lehet használni bármilyen JSTL-es kifejezést a querykhez. Az adatforrás neve, amit meg kell adni az a hivatkozási név amit megadtunk az xml fájlokban. Pl nekem így néz ki: (nyilván én a jdbc/jBlog hivatkozási nevet használtam az XML fájlokban is)
< sql:query var="posts" dataSource="jdbc/jBlog">
SELECT * FROM posts
< /sql:query>
// ...
Hát elviekben ennyi. Ezzel nekem megy a tomcat a mysql-lel JSTL-t felhasználva, connection pooling-gel.
kl223
- A hozzászóláshoz be kell jelentkezni
Ööö, szerintem technológiailag jobban járnál, ha a következő tanulási utat járnád be:
Servlet API, JSP, valamilyen MVC framework (Struts, JSF, Spring, akarmi)
Azutan sima jdbc helyett nezz korbe esetleg Hibernate, JDO vagy az EJB3 kornyeken - a temakor neve az, hogy objektum-relacios lekepezes (O/R mapping).
- A hozzászóláshoz be kell jelentkezni
Hm. A servleteket meglestem, írtam is benne 1-2 példaprogit. Tudom, hogy az nem sok, de nekem az a fajta megközelítés nem teccett. (ez amikor egy osztályt írunk lényegében és az adja vissza az adatokat)
A JSP jobban teccik - talán mert JSPsen jobban hasonlít az oldal pl. a php-hez. Nemtom...
Ezért akartam alapból JSPben menni.
Ellenben a többi nevet meglesem amit adtál!
Nah úgy egyébként akkor megkísérlem még1x azt a MySQL csatlakozást.
Aztán majd szólok mi lett az eredmény.
kl223
- A hozzászóláshoz be kell jelentkezni
Hali!
Na úgy tűnik, sikerült. Egyfolytában "Connection refused!" errort kaptam.
A megoldás: /etc/mysql/my.cnf-ben megkeresni a "skip-networking" sort és ki#ezni.
Egyelőre úgy néz ki, kapcsolódik.
Na akkor építkezek megint, próbálom JSTL-lel és connection poolinggel.
kl223
- A hozzászóláshoz be kell jelentkezni