From 5d5f6cbe4d87f10785c53d31a2dbfb9dd4cf7103 Mon Sep 17 00:00:00 2001 From: lyf666 Date: Tue, 26 Sep 2017 11:24:48 +0800 Subject: [PATCH] =?UTF-8?q?closee=E6=8E=89sql=20connection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + src/main/java/Main.kt | 7 + src/main/java/model/ResponseModel.kt | 4 +- src/main/java/service/Service.kt | 339 +++++++++++++++++++-------- src/main/java/util/ext.kt | 1 + 5 files changed, 252 insertions(+), 104 deletions(-) create mode 100644 src/main/java/util/ext.kt diff --git a/pom.xml b/pom.xml index 0df2230..153c387 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,11 @@ druid 1.1.3 + + com.jfinal + jfinal + 3.2 + diff --git a/src/main/java/Main.kt b/src/main/java/Main.kt index ed645f4..bccc7e4 100644 --- a/src/main/java/Main.kt +++ b/src/main/java/Main.kt @@ -1,3 +1,5 @@ +import com.alibaba.druid.pool.DruidDataSource +import com.jfinal.plugin.activerecord.ActiveRecordPlugin import org.slf4j.LoggerFactory import ro.pippo.controller.ControllerApplication import ro.pippo.core.Pippo @@ -18,6 +20,7 @@ object Main { class BasicApplication : ControllerApplication() { private val log = LoggerFactory.getLogger(BasicApplication::class.java) +// private val druidDataSource: DruidDataSource = DruidDataSource() override fun onInit() { getRouter().ignorePaths("/favicon.ico") @@ -50,6 +53,10 @@ class BasicApplication : ControllerApplication() { addControllers(CtrlMenu::class.java) addControllers(CtrlPerm::class.java) addControllers(CtrlRole::class.java) + + +// val activeRecord = ActiveRecordPlugin(druidDataSource) +// activeRecord.start() } override fun createRequestResponseFactory(): RequestResponseFactory { diff --git a/src/main/java/model/ResponseModel.kt b/src/main/java/model/ResponseModel.kt index 7fe5727..66d09b0 100644 --- a/src/main/java/model/ResponseModel.kt +++ b/src/main/java/model/ResponseModel.kt @@ -1,3 +1,5 @@ package model -data class JSONResponse(val code: Int, val msg: String, val result: Any?) \ No newline at end of file +data class JSONResponse(val code: Int, val msg: String, val result: Any?) + +data class JSONResponseWithExtra(val code: Int, val msg: String, val result: Any?, val extra:Any?) \ No newline at end of file diff --git a/src/main/java/service/Service.kt b/src/main/java/service/Service.kt index a9b18eb..b45ff4b 100644 --- a/src/main/java/service/Service.kt +++ b/src/main/java/service/Service.kt @@ -6,23 +6,30 @@ import util.* class Service { fun getUserById(id: Int): ModelUser? { - val rs = DBUtil.getConnection().createStatement() + val conn = DBUtil.getConnection() + val rs = conn.createStatement() .executeQuery("select * from `user` where id=$id") return if (rs.next()) { - return rsToUser(rs) + val user = rsToUser(rs) + conn.close() + return user } else { null } } fun saveUser(user: ModelUser): Boolean { + val conn = DBUtil.getConnection() try { - DBUtil.getConnection().createStatement() + conn.createStatement() .executeUpdate(userToInsertSQL(user)) + return true } catch (e: Exception) { return false + } finally { + conn.close() } } @@ -31,8 +38,13 @@ class Service { } fun deleteUser(userId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from `user` where id=$userId") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from `user` where id=$userId") > 1 + } finally { + conn.close() + } } fun changePasswd(user: ModelUser, passwd: String): Boolean { @@ -44,24 +56,32 @@ class Service { if (user == null) { return null } - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `group` where id=${user.groupId}") - return if (rs.next()) { - return rsToGroup(rs) - } else { - null + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `group` where id=${user.groupId}") + return if (rs.next()) { + return rsToGroup(rs) + } else { + null + } + } finally { + conn.close() } } fun saveGroup(group: ModelGroup): Boolean { + val conn = DBUtil.getConnection() try { println(groupToInsertSQL(group)) - DBUtil.getConnection().createStatement() + conn.createStatement() .execute(groupToInsertSQL(group)) return true } catch (e: Exception) { e.printStackTrace() return false + } finally { + conn.close() } } @@ -70,18 +90,28 @@ class Service { } fun deleteGroup(groupId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from `group` where id=$groupId") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from `group` where id=$groupId") > 1 + } finally { + conn.close() + } } fun getGroupById(groupId: Int): ModelGroup? { - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `group` where id=$groupId") + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `group` where id=$groupId") - return if (rs.next()) { - return rsToGroup(rs) - } else { - null + return if (rs.next()) { + return rsToGroup(rs) + } else { + null + } + } finally { + conn.close() } } @@ -91,23 +121,38 @@ class Service { return false } - return DBUtil.getConnection().createStatement() - .execute("update `user` set groupId=$groupId where id=$userId") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("update `user` set groupId=$groupId where id=$userId") + } finally { + conn.close() + } } fun unbindUserToGroup(userId: Int, groupId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .execute("update `user` set groupId=-1 where id=$userId") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("update `user` set groupId=-1 where id=$userId") + } finally { + conn.close() + } } fun getRoleById(roleId: Int): ModelRole? { - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `role` where id=$roleId") + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `role` where id=$roleId") - return if (rs.next()) { - return rsToRole(rs) - } else { - null + return if (rs.next()) { + return rsToRole(rs) + } else { + null + } + } finally { + conn.close() } } @@ -116,28 +161,41 @@ class Service { if (user == null) { return null } - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `role` where id=${user.roleId}") - return if (rs.next()) { - return rsToRole(rs) - } else { - null + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `role` where id=${user.roleId}") + return if (rs.next()) { + return rsToRole(rs) + } else { + null + } + } finally { + conn.close() } } fun saveRole(role: ModelRole): Boolean { + val conn = DBUtil.getConnection() try { - DBUtil.getConnection().createStatement() + conn.createStatement() .execute(roleToInsertSQL(role)) return true } catch (e: Exception) { return false + } finally { + conn.close() } } fun deleteRole(roleId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from `role` where id=$roleId") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from `role` where id=$roleId") > 1 + } finally { + conn.close() + } } fun updateRole(role: ModelRole): Boolean { @@ -150,8 +208,13 @@ class Service { return false } - return DBUtil.getConnection().createStatement() - .execute("update `user` set roleId=$roleId where id=$userId") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("update `user` set roleId=$roleId where id=$userId") + } finally { + conn.close() + } } fun unbindUserToRole(userId: Int, roleId: Int): Boolean { @@ -160,44 +223,61 @@ class Service { return false } - return DBUtil.getConnection().createStatement() - .execute("update `user` set roleId=-1 where id=$userId") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("update `user` set roleId=-1 where id=$userId") + } finally { + conn.close() + } } fun getPermById(permId: Int): ModelPerm? { - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `perm` where id=$permId") + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `perm` where id=$permId") - return if (rs.next()) { - return rsToPerm(rs) - } else { - null + return if (rs.next()) { + return rsToPerm(rs) + } else { + null + } + } finally { + conn.close() } } fun getPermByRoleId(roleId: Int): List { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery(""" + try { + val rs = conn.createStatement() + .executeQuery(""" select * from perm t where exists( select * from mapping_perm_role m where m.roleid = $roleId ) """.trim()) - val list = mutableListOf() - while (rs.next()) { - list.add(rsToPerm(rs)) + val list = mutableListOf() + while (rs.next()) { + list.add(rsToPerm(rs)) + } + return list + } finally { + conn.close() } - return list } fun savePerm(perm: ModelPerm): Boolean { + val conn = DBUtil.getConnection() try { - DBUtil.getConnection().createStatement() + conn.createStatement() .executeUpdate(permToInsertSQL(perm)) return true } catch (e: Exception) { return false + } finally { + conn.close() } } @@ -206,8 +286,13 @@ class Service { } fun deletePerm(permId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from `perm` where id=$permId") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from `perm` where id=$permId") > 1 + } finally { + conn.close() + } } fun bindPermToRole(permId: Int, roleId: Int): Boolean { @@ -217,23 +302,38 @@ class Service { return false } - return DBUtil.getConnection().createStatement() - .execute("insert into mapping_perm_role($permId,$roleId)") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("insert into mapping_perm_role($permId,$roleId)") + } finally { + conn.close() + } } fun unbindPermToRole(permId: Int, roleId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from mapping_perm_role where permId=$permId and roleId=$roleId)") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from mapping_perm_role where permId=$permId and roleId=$roleId)") > 1 + } finally { + conn.close() + } } fun getMenuById(menuId: Int): ModelMenu? { - val rs = DBUtil.getConnection().createStatement() - .executeQuery("select * from `menu` where id=$menuId") + val conn = DBUtil.getConnection() + try { + val rs = conn.createStatement() + .executeQuery("select * from `menu` where id=$menuId") - return if (rs.next()) { - return rsToMenu(rs) - } else { - null + return if (rs.next()) { + return rsToMenu(rs) + } else { + null + } + } finally { + conn.close() } } @@ -243,12 +343,15 @@ class Service { } fun saveMenu(menu: ModelMenu): Boolean { + val conn = DBUtil.getConnection() try { - DBUtil.getConnection().createStatement() + conn.createStatement() .execute(menuToInsertSQL(menu)) return true } catch (e: Exception) { return false + } finally { + conn.close() } } @@ -257,8 +360,13 @@ class Service { } fun deleteMenu(menuId: Int): Boolean { - return DBUtil.getConnection().createStatement() - .executeUpdate("delete from `menu` where id=$menuId") > 1 + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .executeUpdate("delete from `menu` where id=$menuId") > 1 + } finally { + conn.close() + } } fun bindMenuToPerm(menuId: Int, permId: Int): Boolean { @@ -267,8 +375,13 @@ class Service { return false } - return DBUtil.getConnection().createStatement() - .execute("update `menu` set permId=$permId where id=$menuId") + val conn = DBUtil.getConnection() + try { + return conn.createStatement() + .execute("update `menu` set permId=$permId where id=$menuId") + } finally { + conn.close() + } } fun unbindMenuToPerm(menuId: Int, permId: Int): Boolean { @@ -278,56 +391,76 @@ class Service { fun pagiUser(page: Int, size: Int): MutableList { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery("select * from `user` limit $size offset ${(page - 1) * size}") - val list = mutableListOf() - while (rs.next()) { - list.add(rsToUser(rs)) + try { + val rs = conn.createStatement() + .executeQuery("select * from `user` limit $size offset ${(page - 1) * size}") + val list = mutableListOf() + while (rs.next()) { + list.add(rsToUser(rs)) + } + return list + } finally { + conn.close() } - return list } fun pagiGroup(page: Int, size: Int): MutableList { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery("select * from `group` limit $size offset ${(page - 1) * size}") - val list = mutableListOf() - while (rs.next()) { - list.add(rsToGroup(rs)) + try { + val rs = conn.createStatement() + .executeQuery("select * from `group` limit $size offset ${(page - 1) * size}") + val list = mutableListOf() + while (rs.next()) { + list.add(rsToGroup(rs)) + } + return list + } finally { + conn.close() } - return list } fun pagiMenu(page: Int, size: Int): MutableList { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery("select * from `menu` limit $size offset ${(page - 1) * size}") - val list = mutableListOf() - while (rs.next()) { - list.add(rsToMenu(rs)) + try { + val rs = conn.createStatement() + .executeQuery("select * from `menu` limit $size offset ${(page - 1) * size}") + val list = mutableListOf() + while (rs.next()) { + list.add(rsToMenu(rs)) + } + return list + } finally { + conn.close() } - return list } fun pagiPerm(page: Int, size: Int): MutableList { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery("select * from `perm` limit $size offset ${(page - 1) * size}") - val list = mutableListOf() - while (rs.next()) { - list.add(rsToPerm(rs)) + try { + val rs = conn.createStatement() + .executeQuery("select * from `perm` limit $size offset ${(page - 1) * size}") + val list = mutableListOf() + while (rs.next()) { + list.add(rsToPerm(rs)) + } + return list + } finally { + conn.close() } - return list } fun pagiRole(page: Int, size: Int): MutableList { val conn = DBUtil.getConnection() - val rs = conn.createStatement() - .executeQuery("select * from `role` limit $size offset ${(page - 1) * size}") - val list = mutableListOf() - while (rs.next()) { - list.add(rsToRole(rs)) + try { + val rs = conn.createStatement() + .executeQuery("select * from `role` limit $size offset ${(page - 1) * size}") + val list = mutableListOf() + while (rs.next()) { + list.add(rsToRole(rs)) + } + return list + } finally { + conn.close() } - return list } } \ No newline at end of file diff --git a/src/main/java/util/ext.kt b/src/main/java/util/ext.kt new file mode 100644 index 0000000..c7d8682 --- /dev/null +++ b/src/main/java/util/ext.kt @@ -0,0 +1 @@ +package util