@Test void testInsert() { DbOom dbOom = DbOom.get(); Boy b = new Boy(); DbSqlBuilder dbc = dbOom.sql().insert("Boy", b); assertEquals("insert into BOY (GIRL_ID, ID) values (:boy.girlId, :boy.id)", dbc.generateQuery()); assertEquals(2, dbc.getQueryParameters().size()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.girlId").getValue()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.id").getValue()); dbc = dbOom.sql().insert(Boy.class, b); assertEquals("insert into BOY (GIRL_ID, ID) values (:boy.girlId, :boy.id)", dbc.generateQuery()); assertEquals(2, dbc.getQueryParameters().size()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.girlId").getValue()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.id").getValue()); dbc = dbOom.sql().insert(b); assertEquals("insert into BOY (GIRL_ID, ID) values (:boy.girlId, :boy.id)", dbc.generateQuery()); assertEquals(2, dbc.getQueryParameters().size()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.girlId").getValue()); assertEquals(Integer.valueOf(0), dbc.getQueryParameters().get("boy.id").getValue()); }
@Test void testColumn() { DbOom dbOom = DbOom.get(); assertEquals("BOY.ID BOY", dbOom.sql().column("Boy.id").table("Boy", null).generateQuery()); assertEquals("BOY.ID BOY", dbOom.sql().column("Boy", "id").table("Boy", null).generateQuery()); assertEquals("Boy.ID BOY Boy", dbOom.sql().column("Boy.id").table("Boy", "Boy").generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().column("b.id").table("Boy", "b").generateQuery()); assertEquals("Boy$ID BOY b", dbOom.sql().column("Boy.id").table("Boy", "b").generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().column("b", "id").table("Boy", "b").generateQuery()); assertEquals("Boy.ID BOY Boy", dbOom.sql().column("Boy.id").table(Boy.class).generateQuery()); assertEquals("b.ID, b.GIRL_ID, b.NAME BOY b", dbOom.sql().column("b.*").table("BadBoy", "b").generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().column("b.+").table("BadBoy", "b").generateQuery()); assertEquals("b.ID as col_0_ BOY b", dbOom.sql().column("b.id").table("Boy", "b").aliasColumnsAs(COLUMN_CODE).generateQuery()); assertEquals("b.ID as b$ID BOY b", dbOom.sql().column("b.id").table("Boy", "b").aliasColumnsAs(TABLE_REFERENCE).generateQuery()); assertEquals("b.ID as BOY$ID BOY b", dbOom.sql().column("b.id").table("Boy", "b").aliasColumnsAs(TABLE_NAME).generateQuery()); assertEquals("col_0_ BOY b", dbOom.sql().column("Boy.id").table("Boy", "b").aliasColumnsAs(COLUMN_CODE).generateQuery()); assertEquals("Boy$ID BOY b", dbOom.sql().column("Boy.id").table("Boy", "b").aliasColumnsAs(TABLE_REFERENCE).generateQuery()); assertEquals("BOY$ID BOY b", dbOom.sql().column("Boy.id").table("Boy", "b").aliasColumnsAs(TABLE_NAME).generateQuery()); }
@Test void testStrings() { DbOom dbOom = DbOom.get(); DbSqlBuilder dbc = dbOom.sql().$("123").$("xxx"); assertEquals("123xxx", dbc.generateQuery()); }
@Test void testReferences() { DbOom dbOom = DbOom.get(); assertEquals("b.ID BOY b", dbOom.sql().ref("b", "id").$(" ").table("Boy", "b").generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().ref("b.+").$(" ").table("BadBoy", "b").generateQuery()); assertEquals("b BOY b", dbOom.sql().ref("b").table("Boy", "b").generateQuery()); assertEquals("BOY BOY", dbOom.sql().ref("Boy").table("Boy", null).generateQuery()); assertEquals("Boy BOY Boy", dbOom.sql().ref("Boy").table("Boy", "Boy").generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().ref("b.id").$(" ").table("Boy", "b").aliasColumnsAs(COLUMN_CODE).generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().ref("b.id").table("Boy", "b").aliasColumnsAs(COLUMN_CODE).generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().ref("b.id").table("Boy", "b").aliasColumnsAs(TABLE_REFERENCE).generateQuery()); assertEquals("b.ID BOY b", dbOom.sql().ref("b.id").table("Boy", "b").aliasColumnsAs(TABLE_NAME).generateQuery()); assertEquals("b.ID from BOY b", sql("$b.id from $T{b b}").use("b", Boy.class).generateQuery()); assertEquals("BOY.ID BOY", dbOom.sql().ref("Boy.id").$(" ").table("Boy", null).aliasColumnsAs(COLUMN_CODE).generateQuery()); }
@Test void testUpdateSet() { DbOom dbOom = DbOom.get(); Boy b = new Boy(); b.id = 1; b.girlId = 2; DbSqlBuilder dbc = dbOom.sql().set("b", b).table("Boy", "b"); assertEquals("set GIRL_ID=:boy.girlId, ID=:boy.id BOY b", dbc.generateQuery()); assertEquals(2, dbc.getQueryParameters().size()); dbc = dbOom.sql().set("Boy", b).table("Boy", null); assertEquals("set GIRL_ID=:boy.girlId, ID=:boy.id BOY", dbc.generateQuery()); assertEquals(2, dbc.getQueryParameters().size()); dbc = dbOom.sql().setAll("b", b).table("Boy", "b"); assertEquals("set GIRL_ID=:boy.girlId, ID=:boy.id, NAME=:boy.name BOY b", dbc.generateQuery()); assertEquals(3, dbc.getQueryParameters().size()); BadBoy bb = new BadBoy(); dbc = dbOom.sql().set("b", bb).table("BadBoy", "b"); assertEquals("set BOY b", dbc.generateQuery()); dbc = dbOom.sql().set("BadBoy", bb).table("BadBoy", null); assertEquals("set BOY", dbc.generateQuery()); dbc = dbOom.sql().setAll("b", bb).table("BadBoy", "b"); assertEquals("set ID=:badBoy.ajdi, GIRL_ID=:badBoy.girlId, NAME=:badBoy.nejm BOY b", dbc.generateQuery()); }
@Test void testTablePrefixSuffix() { DbOom dbOom = DbOom.get(); DbSqlBuilder st; st = dbOom.sql("$T{Boy} $Boy.id $C{Boy.id}"); assertEquals("PRE_BOY_SUF PRE_BOY_SUF.ID PRE_BOY_SUF.ID", st.generateQuery()); st = sql("$T{Boy b} $b.id $C{b.id}"); assertEquals("PRE_BOY_SUF b b.ID b.ID", st.generateQuery()); }
b.id = 1; b.girlId = 2; DbSqlBuilder dbc = dbOom.sql().match("Boy", b).$(" ").table(b, null); assertEquals("(BOY.GIRL_ID=:boy.girlId and BOY.ID=:boy.id) BOY", dbc.generateQuery()); dbc = dbOom.sql().match("b", b).$(" ").table(b, "b"); assertEquals("(b.GIRL_ID=:boy.girlId and b.ID=:boy.id) BOY b", dbc.generateQuery()); DbSqlBuilder dbc = dbOom.sql().match("BadBoy", bb).table(bb, null); assertEquals("(1=1) BOY", dbc.generateQuery()); dbc = dbOom.sql().match("b", bb).table(bb, "b"); assertEquals("(1=1) BOY b", dbc.generateQuery()); DbSqlBuilder dbc = dbOom.sql().$("where ").match("BadBoy", bb).$(" ").table(bb, null); assertEquals("where (1=1) BOY", dbc.generateQuery()); dbc = dbOom.sql().$("where").$().match("b", bb).$(" ").table(bb, "b"); assertEquals("where (1=1) BOY b", dbc.generateQuery()); dbc = dbOom.sql().$("where").$().match("BadBoy", bb).table(bb, null); assertEquals("where (1=1) BOY", dbc.generateQuery()); dbc = dbOom.sql().$("where ").match("b", bb).table(bb, "b"); assertEquals("where (1=1) BOY b", dbc.generateQuery()); dbc = dbOom.sql().$("where ").match("BadBoy", bb).$(" ").table(bb, null); assertEquals("where (BOY.ID=:badBoy.ajdi) BOY", dbc.generateQuery()); dbc = dbOom.sql().$("where ").match("b", bb).$(" ").table(bb, "b"); assertEquals("where (b.ID=:badBoy.ajdi) BOY b", dbc.generateQuery()); dbc = dbOom.sql().$("where ").match("BadBoy", bb).$(" ").table(bb, null); assertEquals("where (1=1) BOY", dbc.generateQuery());
@Test void testCriteria2() { DbOom dbOom = DbOom.get(); Girl girl = new Girl(); girl.speciality = "piano"; Girl girl_condition = new Girl(); girl_condition.speciality = "swim"; String tableRef = "ggg"; DbSqlBuilder dsb = dbOom.sql().$("update ").table(girl, tableRef).set(tableRef, girl).$("where "). match(tableRef, "conditionRef").use("conditionRef",girl_condition); String sql = dsb.generateQuery(); Map<String, ParameterValue> params = dsb.getQueryParameters(); assertEquals(2, params.size()); assertEquals("piano", params.get("girl.speciality").getValue()); assertEquals("swim", params.get("conditionRef.speciality").getValue()); assertEquals( "update GIRL ggg set SPECIALITY=:girl.speciality " + "where (ggg.SPECIALITY=:conditionRef.speciality)", sql); }
s = dbOom.sql().table("Boy"); assertEquals("BOY", s.generateQuery()); assertNotNull(s.getTableDescriptor("Boy")); s = dbOom.sql().table("Boy", null); assertEquals("BOY", s.generateQuery()); assertNotNull(s.getTableDescriptor("Boy")); s = dbOom.sql().table("Boy", "bbb"); assertEquals("BOY bbb", s.generateQuery()); assertNotNull(s.getTableDescriptor("bbb")); s = dbOom.sql().table("BadBoy"); assertEquals("BOY", s.generateQuery()); assertNotNull(s.getTableDescriptor("BadBoy")); s = dbOom.sql().table("BadBoy", null); assertEquals("BOY", s.generateQuery()); assertNotNull(s.getTableDescriptor("BadBoy")); s = dbOom.sql().table("BadBoy", "bbb"); assertEquals("BOY bbb", s.generateQuery()); assertNotNull(s.getTableDescriptor("bbb")); s = dbOom.sql().table(Boy.class); assertEquals("BOY Boy", s.generateQuery()); assertNotNull(s.getTableDescriptor("Boy")); s = dbOom.sql().table(Boy.class, null);
@Test void testCriteria() { DbOom dbOom = DbOom.get(); BadBoy bb = new BadBoy(); BadGirl bg = new BadGirl(); DbSqlBuilder dbc = dbOom.sql().$("select"). columnsAll("bb").columnsIds("bg").$(" from"). table(bb, "bb").table(bg, "bg").$(). match("bb", bb).$().match("bg", bg); assertEquals("select bb.ID, bb.GIRL_ID, bb.NAME, bg.ID from BOY bb, GIRL bg (1=1) (1=1)", dbc.generateQuery()); dbc = dbOom.sql().$("select"). columnsAll("bb").columnsIds("bg").$(" from"). table(bb, "bb").table(bg, "bg").$(" where "). match("bb", bb).$().match("bg", bg).$(" or ").refId("bb").$("=").value(Long.valueOf(5L)); assertEquals("select bb.ID, bb.GIRL_ID, bb.NAME, bg.ID from BOY bb, GIRL bg where (1=1) (1=1) or bb.ID=:p0", dbc.generateQuery()); dbc.reset(); bb.ajdi = bg.fooid = Integer.valueOf(1); assertEquals("select bb.ID, bb.GIRL_ID, bb.NAME, bg.ID from BOY bb, GIRL bg where (bb.ID=:badBoy.ajdi) (bg.ID=:badGirl.fooid) or bb.ID=:p0", dbc.generateQuery()); // test double call assertEquals("select bb.ID, bb.GIRL_ID, bb.NAME, bg.ID from BOY bb, GIRL bg where (bb.ID=:badBoy.ajdi) (bg.ID=:badGirl.fooid) or bb.ID=:p0", dbc.generateQuery()); }