Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- luajava.bindClass('java.lang.Class'):forName('org.postgresql.Driver')
- conn = luajava.bindClass('java.sql.DriverManager'):getConnection('jdbc:postgresql://localhost/fran?user=fran&password=fran')
- conn:prepareStatement([[
- create temporary table a(k serial primary key, t text);
- insert into a values(42, 'foo');]]):execute();
- function list()
- local st = conn:prepareStatement('select * from a')
- local rs = st:executeQuery()
- while rs:next() do
- print(rs:getString(1), rs:getString(2))
- end
- rs:close()
- st:close()
- end
- upsert = (function()
- local stmtIns = conn:prepareStatement([[insert into a values(?, ?);]])
- local stmtUpd = conn:prepareStatement([[update a set t=? where k=?;]])
- return function(k, t)
- stmtIns:setInt(1, k)
- stmtIns:setString(2, t)
- if not pcall(function() stmtIns:execute() end) then
- stmtUpd:setInt(2, k)
- stmtUpd:setString(1, t)
- stmtUpd:execute()
- end
- end
- end)()
- list()
- print('running upsert')
- upsert(30, 'bar')
- upsert(42, 'pelota')
- list()
- -- ejecución:
- -- 42 foo
- -- running upsert
- -- 30 bar
- -- 42 pelota
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement