tag:blogger.com,1999:blog-62323232588825506342024-02-20T07:08:14.624-08:00<center>
<a href="https://github.com/jacek99/Napalm">https://github.com/jacek99/Napalm</a><br>
<br>Java web microframework, inspired by <a href="http://www.sinatrarb.com/">Sinatra</a><br>
Official blog</center>Jacek Furmankiewiczhttp://www.blogger.com/profile/05579810225263887512noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-6232323258882550634.post-77550538238719847072011-02-02T14:38:00.000-08:002011-02-02T14:39:35.990-08:00Connecting to a database with NapalmIn line with our ideas of instant web gratification, Napalm offers a super simple way of connecting to a JDBC datasource and exposing it as a Spring bean.<br />
<br />
Just do this something like this:<br />
<br />
<blockquote>Napalm.addResource("db", "jdbc:h2:mem:db1");<br />
Napalm.run(8080,MyApp.class);<br />
</blockquote><br />
And in your app you get a nice Apache Commons DBCP data source created for you automatically:<br />
<br />
<blockquote>@Resource(name = "db")<br />
private DataSource db;<br />
</blockquote><br />
No more fiddling with JNDI. You can also pass the user name/password in the same string, delimited by a comma, e.g.<br />
<br />
<blockquote>Napalm.addResource("db", "jdbc:mysql://localhost:3306/napalm,user,password");<br />
Napalm.run(8080,MyApp.class);<br />
</blockquote><br />
Just one of the ways Napalm tries to minimize the time from thinking about your app to actually running it.<br />
<br />
Full example below:<br />
<br />
<pre>@Service
@Path("/")
@Produces(MediaType.TEXT_PLAIN)
public class NapalmTestApp {
@Resource(name = "db")
private DataSource db;
@GET @Path("/db")
public String getDbInfo() {
return String.valueOf(new JdbcTemplate(db).queryForInt("SELECT COUNT(*) FROM INFORMATION_SCHEMA.CATALOGS"));
}
public static void main(String[] args) {
Napalm.addResource("db", "jdbc:h2:mem:db1");
Napalm.run(8080, NapalmTestApp.class);
}
}
}
</pre>Jacek Furmankiewiczhttp://www.blogger.com/profile/05579810225263887512noreply@blogger.com0