private ISQLitePreparedStatement prepareInsert(SquidDatabase db, Table table, TableStatement.ConflictAlgorithm conflictAlgorithm) { Object[] placeholders = new Object[table.getProperties().length]; Arrays.fill(placeholders, new Object()); Insert insert = Insert.into(table).columns(table.getProperties()) .values(placeholders).onConflict(conflictAlgorithm); CompiledStatement compiled = insert.compile(db.getCompileContext()); ISQLitePreparedStatement statement = db.prepareStatement(compiled.sql); dbStatementTracking.add(statement); return statement; } }
public void run() { database.insert(Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .values("Some", "Guy")); } };
@Override public void run() { Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.BIRTHDAY); insert.compile(database.getCompileContext()); } }, IllegalStateException.class);
@Override public void run() { Insert insert = Insert.into(TestModel.TABLE) .columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .values("Alan", "Turing") .values("Linus", "Torvalds"); database.insert(insert); } }, UnsupportedOperationException.class);
@Override public void run() { final String fname1 = "Alan"; final String lname1 = "Turing"; final String fname2 = "Linus"; final String lname2 = "Torvalds"; Insert insert = Insert.into(TestModel.TABLE) .columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .values(fname1, lname1) .values(fname2, lname2); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 4, fname1, lname1, fname2, lname2); assertEquals(3, database.insert(insert)); Criterion where = TestModel.FIRST_NAME.eq(fname1).and(TestModel.LAST_NAME.eq(lname1)); assertNotNull(database.fetchByCriterion(TestModel.class, where, TestModel.PROPERTIES)); where = TestModel.FIRST_NAME.eq(fname2).and(TestModel.LAST_NAME.eq(lname2)); assertNotNull(database.fetchByCriterion(TestModel.class, where, TestModel.PROPERTIES)); } });
database2.beginTransaction(); try { database2.tryExecStatement(Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .select(Query.select(TestModel.FIRST_NAME, TestModel.LAST_NAME) .from(TestModel.TABLE.qualifiedFromDatabase(attachedAs))));
@Override public void run() { // insert into testModels (firstName, lastName) select (firstName, lastName, creationDate) from // testModels where luckyNumber = 9; Query query = Query.select(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.BIRTHDAY) .from(TestModel.TABLE) .where(TestModel.LUCKY_NUMBER.eq(9)); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .select(query); insert.compile(database.getCompileContext()); } }, IllegalStateException.class);
database2.beginTransaction(); try { database2.tryExecStatement(Insert.into(TestModel.TABLE).columns(TestModel.PROPERTIES) .select(Query.select(TestModel.PROPERTIES) .from(TestModel.TABLE.qualifiedFromDatabase(attachedAs))));
public void testInsertWithQuery() { double pi = Math.PI; Criterion criterion = Thing.QUX.gt(pi); int numThingsMatching = database.count(Thing.class, criterion); // insert into testModels select foo, bar, isAlive from things where qux > 3.1415...; Query query = Query.select(Thing.FOO, Thing.BAR, Thing.IS_ALIVE).from(Thing.TABLE).where(criterion); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.LAST_NAME, TestModel.LUCKY_NUMBER, TestModel.IS_HAPPY).select(query); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 1, pi); int testModelsBeforeInsert = database.countAll(TestModel.class); assertEquals(3, database.insert(insert)); int testModelsAfterInsert = database.countAll(TestModel.class); assertEquals(testModelsBeforeInsert + numThingsMatching, testModelsAfterInsert); }
.perform(Insert.into(TriggerTester.TABLE).columns(TriggerTester.VALUE_1, TriggerTester.VALUE_2) .values(0, newLuckyNumber)); .perform(Insert.into(TriggerTester.TABLE).columns(TriggerTester.VALUE_1, TriggerTester.VALUE_2) .values(oldLuckyNumber, 0)); .perform(Insert.into(TriggerTester.TABLE).columns(TriggerTester.VALUE_1, TriggerTester.VALUE_2) .values(oldLuckyNumber, newLuckyNumber));
public void testInsertWithCoflictReplace() { final String lname = sam.getLastName(); // check preconditions // last name is unique TestModel shouldNotBeNull = database.fetchByCriterion(TestModel.class, TestModel.LAST_NAME.eq(lname), TestModel.PROPERTIES); assertNotNull(shouldNotBeNull); // insert or replace into testModels (firstName, lastName, isHappy, luckyNumber) values ("Jack", "Bosley", 0, // 777); final String fname = "Jack"; final boolean isHappy = false; final int luckyNumber = 777; Insert insert = Insert.into(TestModel.TABLE) .onConflict(ConflictAlgorithm.REPLACE) .columns(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.IS_HAPPY, TestModel.LUCKY_NUMBER) .values(fname, lname, isHappy, luckyNumber); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 4, fname, lname, isHappy, luckyNumber); int rowsBeforeInsert = database.countAll(Thing.class); assertEquals(rowsBeforeInsert, database.insert(insert)); // Expect replace int rowsAfterInsert = database.countAll(Thing.class); assertEquals(rowsBeforeInsert, rowsAfterInsert); TestModel modelWithSamLastName = database.fetchByCriterion(TestModel.class, TestModel.LAST_NAME.eq(lname), TestModel.PROPERTIES); assertEquals(fname, modelWithSamLastName.getFirstName()); assertEquals(lname, modelWithSamLastName.getLastName()); assertEquals(Boolean.valueOf(isHappy), modelWithSamLastName.isHappy()); assertEquals(Integer.valueOf(luckyNumber), modelWithSamLastName.getLuckyNumber()); }
public void testInsertWithValues() { final String fname = "Jack"; final String lname = "Sparrow"; // check preconditions // last name is unique Criterion lastNameSparrow = TestModel.LAST_NAME.eqCaseInsensitive(lname); TestModel shouldBeNull = database.fetchByCriterion(TestModel.class, lastNameSparrow, TestModel.PROPERTIES); assertNull(shouldBeNull); // insert into testModels (firstName, lastName) values ('Jack', 'Sparrow'); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME).values(fname, lname); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 2, fname, lname); assertEquals(2, database.insert(insert)); TestModel shouldNotBeNull = database.fetchByCriterion(TestModel.class, lastNameSparrow, TestModel.PROPERTIES); assertNotNull(shouldNotBeNull); assertEquals(fname, shouldNotBeNull.getFirstName()); assertEquals(lname, shouldNotBeNull.getLastName()); }
private ISQLitePreparedStatement prepareInsert(SquidDatabase db, Table table, TableStatement.ConflictAlgorithm conflictAlgorithm) { Object[] placeholders = new Object[table.getProperties().length]; Arrays.fill(placeholders, new Object()); Insert insert = Insert.into(table).columns(table.getProperties()) .values(placeholders).onConflict(conflictAlgorithm); CompiledStatement compiled = insert.compile(db.getCompileContext()); ISQLitePreparedStatement statement = db.prepareStatement(compiled.sql); dbStatementTracking.add(statement); return statement; } }
public void testAttachDetach() { String attachedAs = database2.attachDatabase(database); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.PROPERTIES) .select(Query.select(TestModel.PROPERTIES) .from(TestModel.TABLE.qualifiedFromDatabase(attachedAs))); Insert insertVirtual = Insert.into(TestVirtualModel.TABLE).columns(TestVirtualModel.PROPERTIES) .select(Query.select(TestVirtualModel.PROPERTIES) .from(TestVirtualModel.TABLE.qualifiedFromDatabase(attachedAs)));
public void testInsertWithCoflictIgnore() { final String lname = sam.getLastName(); // check preconditions // last name is unique TestModel shouldNotBeNull = database.fetchByCriterion(TestModel.class, TestModel.LAST_NAME.eq(lname), TestModel.PROPERTIES); assertNotNull(shouldNotBeNull); // insert or replace into testModels (firstName, lastName, isHappy, luckyNumber) values ("Jack", "Bosley", 0, // 777); final String fname = "Jack"; final boolean isHappy = false; final int luckyNumber = 777; Insert insert = Insert.into(TestModel.TABLE) .onConflict(ConflictAlgorithm.IGNORE) .columns(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.IS_HAPPY, TestModel.LUCKY_NUMBER) .values(fname, lname, isHappy, luckyNumber); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 4, fname, lname, isHappy, luckyNumber); int rowsBeforeInsert = database.countAll(Thing.class); assertEquals(-1, database.insert(insert)); // Expect conflict int rowsAfterInsert = database.countAll(Thing.class); assertEquals(rowsBeforeInsert, rowsAfterInsert); TestModel withSamLastName = database.fetchByCriterion(TestModel.class, TestModel.LAST_NAME.eq(lname), TestModel.PROPERTIES); assertEquals(sam.getFirstName(), withSamLastName.getFirstName()); assertEquals(sam.getLastName(), withSamLastName.getLastName()); assertEquals(sam.isHappy(), withSamLastName.isHappy()); assertEquals(sam.getLuckyNumber(), withSamLastName.getLuckyNumber()); }
.columns(TriggerTester.STR_1, TriggerTester.STR_2) .values(Trigger.newValueOf(TestViewModel.TEST_NAME), Trigger.newValueOf(TestViewModel.EMPLOYEE_NAME)); Trigger insertInsteadOf = Trigger.insteadOf("view_insert") .columns(TestViewModel.TEST_NAME, TestViewModel.EMPLOYEE_NAME).values(tname1, ename1));
Insert insert = Insert.into(TriggerTester.TABLE).columns(TriggerTester.VALUE_1, TriggerTester.VALUE_2) .values(Trigger.newValueOf(Thing.ID), Trigger.newValueOf(Thing.BAR)); Trigger trigger = Trigger.after("record_bar_gt_9k")