服务端可以使用Sqlite数据库吗? 当然是可以的。SQLite在小、中型流量的网站上还是可以用的。通常情况下,每天点击量在100K(10万)以下是完全没有问题的。 首先要添加依赖包:dependencies{。。。implementationorg。xerial:sqlitejdbc:3。36。0。2。。。}数据库操作objectDBUtil{privateconstvalurljdbc:sqlite:dbshyusers。db支持droptable、createtable、insertinto、updateparamsql数据库查询语句paramparamsPreparedStatement使用的参数paramtimeout超时时间paramblock接收返回的每一行数据funupdate(sql:String,params:Array?null,timeout:Int30):Boolean{varstate0dose{if(params!null){valstatementgetPreparedStatement(it,sql,timeout,params)statestatement。executeUpdate()}else{valstatementit。createStatement()statement。queryTimeouttimeoutstatestatement。executeUpdate(sql)}}returnstate0}查询操作paramsql数据库查询语句paramparamsPreparedStatement使用的参数paramtimeout超时时间paramblock接收返回的每一行数据funquery(sql:String,params:ArrayarrayOf(),timeout:Int30,block:(ResultSet)Unit){dose{if(params。isNotEmpty()){使用PreparedStatementvalstatementgetPreparedStatement(it,sql,timeout,params)valrsstatement。executeQuery()while(rs。next()){block(rs)}}else{使用Statementvalstatementit。createStatement()statement。queryTimeouttimeoutvalrsstatement。executeQuery(sql)while(rs。next()){block(rs)}}}}获取PreparedStatementprivatefungetPreparedStatement(it:Connection,sql:String,timeout:Int,params:Array):PreparedStatement{valstatementit。prepareStatement(sql)statement。queryTimeouttimeoutfor(iin1。。params。size){when(valaparams〔i1〕){nullstatement。setNull(i,Types。NULL)isString{when{RegexUtil。isTimestamp(a){statement。setTimestamp(i,Timestamp。valueOf(a))}RegexUtil。isShortDate(a){statement。setDate(i,Date。valueOf(a))}RegexUtil。isShortTime(a){statement。setTime(i,Time。valueOf(a))}else{statement。setString(i,a)}}}isBooleanstatement。setBoolean(i,a)isBytestatement。setByte(i,a)isShortstatement。setShort(i,a)isIntstatement。setInt(i,a)isLongstatement。setLong(i,a)isFloatstatement。setFloat(i,a)isDoublestatement。setDouble(i,a)isBigDecimalstatement。setBigDecimal(i,a)isByteArraystatement。setBytes(i,a)isDatestatement。setDate(i,a)isTimestatement。setTime(i,a)isTimestampstatement。setTimestamp(i,a)}}returnstatement}获取数据库连接并执行数据库操作privatefundose(block:(Connection)Unit){try{DriverManager。getConnection(url)。use{block(it)}}catch(e:SQLException){System。err。println(e。message)}}} 再上个Dao的代码:objectUserDao{创建用户funcreateUser(user:User):String{varstrHyCode。dbErrorvalsqlinsertintoUser(name,password)values(?,?)valflagDBUtil。update(sql,arrayOf(user。name,user。password))if(flag){strHyCode。dbSuccess}returnstr}通过用户名查询用户funfindUserByName(name:String):User?{varuser:User?nullvalsqlselectfromUserwherename?DBUtil。query(sql,arrayOf(name)){userUser(it。getString(name),it。getString(password),it。getInt(id))}returnuser}通过用户名查询用户IdfunfindUserIdByName(name:String):Int?{varuserId:Int?nullvalsqlselectidfromUserwherename?DBUtil。query(sql,arrayOf(name)){userIdit。getInt(id)}returnuserId}}