Skip to content

Instantly share code, notes, and snippets.

QueryRunner runner = new QueryRunner(dataSource);
try
{
// Execute the SQL insert statement
runner.insert("INSERT INTO Person (name,height) VALUES (:name,:height)")
.bind("name", "John Doe")
.bind("height", 1.82)
.execute();
// Now it's time to rise to the occation...
// Use a ResultSetHandler implementation, ArrayHandler, to convert the
// first row into an Object[].
ResultSetHandler<Object[]> handler = new ArrayHandler();
// Create a QueryRunner that will use connections from
// the given DataSource
QueryRunner runner = new QueryRunner(dataSource);
// Generate a QueryExecutor for the query
QueryExecutor executor = runner.query("SELECT * FROM Person WHERE first_name=:first_name and last_name = :last_name");
@wspeirs
wspeirs / SimpleStatistics.java
Created November 13, 2013 03:55
Simple statistics using commons-math3
final DescriptiveStatistics descriptiveStats = new DescriptiveStatistics(); // stores values
final SummaryStatistics summaryStats = new SummaryStatistics(); // doesn't store values
final Frequency frequency = new Frequency();
// add numbers into our stats
for(int i=0; i < NUM_VALUES; ++i) {
values[i] = rng.nextInt(MAX_VALUE);
descriptiveStats.addValue(values[i]);
summaryStats.addValue(values[i]);
@Subscribe
public void getIntegerEvent(Integer event) throws InterruptedException {
TimeUnit.MILLISECONDS.sleep(sleep);
System.out.println(System.currentTimeMillis() + ":\t" + name + " got " + event);
}
@wspeirs
wspeirs / merged
Created January 20, 2013 17:25
Merged template and context.
Dear Bill-
This is an e-mail because you signed up for www.sop4j.com and we're really happy that you did.
Here are 3 cool articles you can read:
- Welcome
- Parsing the Command Line
- Document Templating or Mail Merge
@wspeirs
wspeirs / my_template.vm
Created January 20, 2013 17:24
Velocity template
## this is a single-line comment in the template
Dear ${user.Name}- ## notice we use the formal directive here because we want the - right after the variable
This is an e-mail because you signed up for $site and we're really happy that you did.
#*
This is how you check to see if a value is null
This is also a multi-line comment
*#
#if( $message )
This special message won't be shown because our \$message is null
@wspeirs
wspeirs / Velocity3.java
Created January 20, 2013 17:18
Merging Velocity context and template together.
// get the template
final Template template = velocity.getTemplate("my_template.vm");
final StringWriter sw = new StringWriter();
// merge the template and context
template.merge(context, sw);
// print out the resulting document
System.out.println(sw.toString());
@wspeirs
wspeirs / Velocity2.java
Created January 20, 2013 17:15
Setting the Velocity context.
// create the context to set all the variables
final VelocityContext context = new VelocityContext();
// setup the context
context.put("user", new UserBean("bill"));
context.put("site", "www.sop4j.com");
context.put("articles", Arrays.asList(new ArticleBean("Welcome"),
new ArticleBean("Parsing the Command Line"),
new ArticleBean("Document Templating or Mail Merge")));
@wspeirs
wspeirs / Velocity1.java
Created January 20, 2013 17:12
Configuring the Velocity engine
// create the velocity engine
final VelocityEngine velocity = new VelocityEngine();
// set the logger to our Log4J root logger
velocity.setProperty("runtime.log.logsystem.log4j.logger", "root");
// use the resource loader as it's easy with Maven's path setup
velocity.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
velocity.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
// check to see if they need help
// notice we only use the short-version, but it checks both!
if(cmdLine.hasOption("h")) {
new HelpFormatter().printHelp("sop4j-cli", options);
return;
}
// check to see if they passed in an opt
// recommended to use the long version as it's more readable
if(cmdLine.hasOption("opt")) {