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 |