Skip to content

Instantly share code, notes, and snippets.

// 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");
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...
AsyncExecutor asyncRun = new AsyncExecutor(Executors.newFixedThreadPool(5));
try
{
// Setup the UpdateExecutor
UpdateExecutor executor = runner.update("UPDATE Person SET height=:height WHERE name=:name")
.bind(":height", 2.05)
.bind("name", "John Doe");
// Returns a Future for the update call
QueryRunner runner = new QueryRunner(dataSource);
// Use the BeanListHandler implementation to convert all
// ResultSet rows into a List of Person JavaBeans.
ResultSetHandler<List<Person>> handler = new BeanListHandler<Person>(Person.class);
// Execute the SQL statement and return the results in a List of
// Person objects generated by the BeanListHandler.
List<Person> persons = runner.query("SELECT * FROM Person").execute(handler);
@wspeirs
wspeirs / lib.rs
Created September 11, 2016 18:18
let mut wal_file = try!(OpenOptions::new().read(true).write(true).create(true).open(tree_file_path.to_owned() + ".wal"));
// if we have a WAL file, just replay it into the mem_tree
if try!(wal_file.metadata()).len() != 0 {
let mut buff = vec![0; node_size];
while true {
match wal_file.read_exact(&mut buff) {
Ok(_) => {
let k = try!(decode(&buff[0..max_key_size]));
@wspeirs
wspeirs / qt_logging.cpp
Created April 11, 2019 17:27
Example of how to use logging in QT
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QLoggingCategory>
Q_LOGGING_CATEGORY(fcIo, "fc.io")
const x:num = 123.456; // this is a constant that never changes
const y:str = "hello world"; // constant string literal
var a:str = "hello"; // create a string variable, and assign to string literal
var b:num = 23.4; // create a number variable, and assign number
var c:str[] = ["hello", "world"]; // create an array variable, assign literal
CWD = "/path/to/current/directory"; // CWD is a special variable that can be set or read, and represents the current working directory
print(ARG[0]); // ARG is a spcecial variable that can only be read; it is a str[]. The first argument (zero index) is the first argument passed to the script.
cmake_minimum_required(VERSION 3.8.0)
# Project info
project(sdhr)
set(${PROJECT_NAME}_MAJOR "0")
set(${PROJECT_NAME}_MINOR "0")
set(${PROJECT_NAME}_PATCH "1")
set(VERSION "${${PROJECT_NAME}_MAJOR}.${${PROJECT_NAME}_MINOR}.${${PROJECT_NAME}_PATCH}")
set(CMAKE_CXX_STANDARD 11)
@wspeirs
wspeirs / waterfall.cpp
Created July 3, 2020 17:04
Waterfall from QwtPlotSpectrogram
#include <qwt_color_map.h>
#include <qwt_matrix_raster_data.h>
#include <boost/circular_buffer.hpp>
#include <QtCore/QMutex>
#include "waterfall.h"
using boost::circular_buffer;
using std::make_shared;
use parking_lot::{RwLock, RwLockReadGuard, RwLockUpgradableReadGuard};
use log::{debug};
use rkyv::{Archive, Archived, Deserialize, out_field, RelPtr, Serialize};
use std::alloc::{alloc, dealloc, Layout};
use std::cmp::max;
use std::mem::ManuallyDrop;
use std::ops::{Deref, DerefMut};
use std::ptr::{copy_nonoverlapping};
use std::sync::atomic::{AtomicUsize, Ordering};