Mercurial Hosting > luan
annotate src/luan/modules/sql/Sql.luan @ 1353:8d95711f6615
replace java() with require "java"
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Wed, 20 Mar 2019 17:03:29 -0600 |
| parents | 7d9a1f8894b0 |
| children | 1979cff9aad2 |
| rev | line source |
|---|---|
|
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1343
diff
changeset
|
1 require "java" |
| 1267 | 2 local Luan = require "luan:Luan.luan" |
| 3 local error = Luan.error | |
| 4 local new_error = Luan.new_error or error() | |
| 5 local set_metatable = Luan.set_metatable or error() | |
| 6 local Database = require "java:luan.modules.sql.Database" | |
| 7 local Logging = require "luan:logging/Logging.luan" | |
| 8 local logger = Logging.logger "Sql" | |
| 9 | |
| 10 | |
| 11 local Sql = {} | |
| 12 | |
| 13 local mt = {} | |
| 14 | |
| 15 function mt.__gc(database) | |
|
1268
725e52076f03
remove broken pooling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1267
diff
changeset
|
16 if not database.is_closed() then |
| 1267 | 17 logger.error(database.created) |
| 18 database.close() | |
| 19 end | |
| 20 end | |
| 21 | |
| 22 function Sql.database(spec) | |
| 23 local database = {} | |
| 24 set_metatable(database,mt) | |
|
1268
725e52076f03
remove broken pooling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1267
diff
changeset
|
25 local java_database = Database.new(spec) |
| 1267 | 26 database.java = java_database |
| 27 database.created = new_error "not closed, created:" | |
|
1268
725e52076f03
remove broken pooling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1267
diff
changeset
|
28 database.close = java_database.con.close |
|
725e52076f03
remove broken pooling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1267
diff
changeset
|
29 database.is_closed = java_database.con.isClosed |
| 1267 | 30 database.update = java_database.update |
|
1341
a015a0b5c388
add Html.decode(), Lucene.count_tokens(), lucene boosts, Sql.database.set()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1268
diff
changeset
|
31 database.set = java_database.set |
| 1267 | 32 |
| 33 function database.query(sql,...) | |
| 34 local rs = java_database.query(sql,...) | |
| 35 local mt = {} | |
| 36 function mt.__index(_,key) | |
| 37 local rtn = rs.getObject(key) | |
| 38 return not rs.wasNull() and rtn or nil | |
| 39 end | |
| 40 local result = {} | |
| 41 set_metatable(result,mt) | |
| 42 return function() | |
| 43 if rs.isClosed() then | |
| 44 return nil | |
| 45 end | |
| 46 if not rs.next() then | |
| 47 rs.close() | |
| 48 return nil | |
| 49 end | |
| 50 return result | |
|
1343
7d9a1f8894b0
lucene change indexed_only_field() to indexed_only_fields()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1341
diff
changeset
|
51 end, rs |
| 1267 | 52 end |
| 53 | |
| 54 return database | |
| 55 end | |
| 56 | |
| 57 return Sql |
