2.3.2. fejezet, Adatforrások
Beküldte pzoli - 2011, május 16 - 3:31du
JDBC DataSource objektumokkal kialakítható connection pool hasznos több szálú alkalmazások készítésekor.
JNDI erőforrásból előállított JDBC kapcsolatra egy példa:
public Connection getConnectionFromPool(){ Connection result = null; try { InitialContext ctx = new InitialContext(); Context envContext = (Context)ctx.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/"+getName()); result = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); }catch (SQLException e) { e.printStackTrace(); } return result; }
ahol a getName metódus a JDBC kapcsolat nevét adja vissza. Ha a demand nevű adatbázist szeretnénk elérni, akkor hozzuk létre a context.xml fájlt a projekt META-INF könyvtárba a következő tartalommal:
<Context debug="5" reloadable="true" crossContext="true"> <Resource name="jdbc/demand" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="username" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/demand"> <parameter> <name>autoReconnect</name> <value>true</value> </parameter> </Resource> </Context>
A web.xml fájlba szerkesszük a resource-ref tagot:
<web-app ... > ... <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/demand</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> ... </web-app>
Adatforrás lehet egy fájl is. Ilyenek a .properties végződésű fájlok. Olyanok, mint az .ini fájlok, csoportok nélkül.
Paraméterek
String UserDirectoryHeader = "${user}=${password}"; String UserDirectoryFile = "resources/users.properties";
Betöltés
java.io.InputStream i = null; Properties p = null; i = this.getClass().getClassLoader(). getResourceAsStream(UserDirectoryFile); try { p = new Properties(); p.load(i); i.close(); } catch (java.io.IOException e) { p = null; System.out.println(e.getMessage()); }
Használat
p.getProperty("valami"); p.propertyNames(); p.put(userId, password);
Módosítások mentése
String o = this.getClass().getClassLoader().getResource(UserDirectoryFile).getFile(); p.store(new FileOutputStream(o), UserDirectoryHeader);
A resources/users.properties fájlt az src/resources könyvtárba helyezzük el. Ez bekerül a WEB-INF/classes/resources könyvtárba.
#${user}=${password} #Wed Oct 12 14:02:33 CEST 2011 CEDRIC=Dumoulin123 FRE=dtd ABCS=aa FREDERICHRE=asd
- A hozzászóláshoz be kell jelentkezni