0.0.1-SNAPSHOT
wangbing 5 years ago
parent 7c07a55bad
commit 38472bcbb6

@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import xyz.wbsite.wsqlite.ObjectClient;
import xyz.wbsite.wsqlite.Where;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@ -216,7 +217,7 @@ public class AjaxController {
private BaseResponse loadPort(String jsonString, Token token) {
PortLoadResponse response = new PortLoadResponse();
try {
List<Service> select = objectClient.select(Service.class, 1, 0);
List<Service> select = objectClient.select(Service.class, Where.builder().build(), 1, 0);
for (Service service : select) {
MappingFindRequest mappingFindRequest = new MappingFindRequest();

@ -10,6 +10,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import xyz.wbsite.wsqlite.ObjectClient;
import xyz.wbsite.wsqlite.Where;
import java.io.File;
import java.sql.SQLException;
@ -39,7 +40,7 @@ public class SqliteConfig {
objects.add(Service.class);
ObjectClient objectClient = new ObjectClient(new File(dbpath, "data.db"), objects);
List<Service> select = objectClient.select(Service.class, 1, 1);
List<Service> select = objectClient.select(Service.class, Where.builder().build(),1, 1);
if (select.size() == 0 && objectClient.insert(Service.class, new Service(IDgenerator.nextId(), "8888", "默认端口")) != 1) {
throw new RuntimeException("Nginx default port 8888 init failed.");
}

@ -18,6 +18,7 @@ import com.example.module.admin.rsp.MappingUpdateResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import xyz.wbsite.wsqlite.ObjectClient;
import xyz.wbsite.wsqlite.Where;
import java.sql.SQLException;
import java.util.Date;
@ -51,20 +52,6 @@ public class MappingManagerImpl implements MappingManager {
return response;
}
try {
Mapping where = new Mapping();
where.setContext(request.getContext());
List<Mapping> select = objectClient.select(Mapping.class, 1, 0, "SERVICEID = " + request.getServiceId()+" AND CONTEXT =" +request.getContext());
if (select.size() > 0) {
}
} catch (SQLException | ClassNotFoundException e) {
response.addError(ErrorType.BUSINESS_ERROR, "Sqlite错误");
return response;
}
long id = IDgenerator.nextId();
Mapping entity = MapperUtil.map(request, Mapping.class);
entity.setId(id);
@ -100,7 +87,7 @@ public class MappingManagerImpl implements MappingManager {
}
try {
int update = objectClient.delete(Mapping.class, "ID = " + request.getId());
int update = objectClient.delete(Mapping.class, Where.builder().eq("ID", request.getId()).build());
response.setResult((long) update);
} catch (SQLException | ClassNotFoundException e) {
response.addError(ErrorType.BUSINESS_ERROR, "删除错误");
@ -128,7 +115,7 @@ public class MappingManagerImpl implements MappingManager {
Mapping mapping = MapperUtil.map(request, Mapping.class);
try {
int update = objectClient.update(Mapping.class, mapping, "ID = " + mapping.getId());
int update = objectClient.update(Mapping.class, mapping, Where.builder().eq("ID", request.getId()).build());
response.setResult((long) update);
} catch (SQLException | ClassNotFoundException e) {
response.addError(ErrorType.BUSINESS_ERROR, "更新错误");
@ -153,7 +140,7 @@ public class MappingManagerImpl implements MappingManager {
}
try {
List<Mapping> select = objectClient.select(Mapping.class, 1, 0, "SERVICEID=" + request.getServiceId());
List<Mapping> select = objectClient.select(Mapping.class, Where.builder().build(), 1, 0);
response.setResult(select);
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();

@ -241,7 +241,7 @@
<div class="message">您没有足够的权限哦!</div>
<div class="message2">您正在试图访问一个没有事先授权的页面.或登录已失效。</div>
<div class="message3" id="timer">5 秒后自动跳转登录页</div>
<a class="login" href="${Uri.getUrl("/login")}">立即跳转</a>
<a class="login" href="${Uri.getUrl("/login.htm")}">立即跳转</a>
</div>
</div>

@ -5,6 +5,7 @@ import xyz.wbsite.wsqlite.anonation.TableField;
import java.io.File;
import java.lang.reflect.Field;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -101,7 +102,8 @@ public class ObjectClient extends Client {
f.setAccessible(true);
fieldsSql.append(f.getName().toUpperCase());
valueSql.append("?");
values[i] = f.get(po);
Object o = f.get(po);
values[i] = o;
if (i != fs.size() - 1) {
fieldsSql.append(",");
valueSql.append(",");
@ -123,7 +125,7 @@ public class ObjectClient extends Client {
return 0;
}
public <T> int delete(Class<T> poClass, String... wheres) throws SQLException, ClassNotFoundException {
public <T> int delete(Class<T> poClass, Where where) throws SQLException, ClassNotFoundException {
try {
Class aClass = classMap.get(poClass.getName());
if (aClass == null) {
@ -132,16 +134,9 @@ public class ObjectClient extends Client {
StringBuffer sql = new StringBuffer();
sql.append("DELETE FROM ");
sql.append(aClass.getSimpleName());
if (wheres.length > 0) {
sql.append(" WHERE ");
for (int i = 0; i < wheres.length; i++) {
String where = wheres[i];
sql.append(where);
sql.append(i != wheres.length - 1 ? " AND " : "");
}
}
return executeUpdate(sql.toString());
sql.append(where.getSql());
System.out.println("SQL ==> " + sql.toString());
return executeUpdate(sql.toString(), where.getArgs());
}
} finally {
destroyed();
@ -149,7 +144,7 @@ public class ObjectClient extends Client {
return 0;
}
public <T> int update(Class<T> poClass, T po, String... wheres) throws SQLException, ClassNotFoundException {
public <T> int update(Class<T> poClass, T po, Where where) throws SQLException, ClassNotFoundException {
try {
Class aClass = classMap.get(poClass.getName());
if (aClass == null) {
@ -175,17 +170,11 @@ public class ObjectClient extends Client {
}
}
if (wheres.length > 0) {
sql.append(" WHERE ");
for (int i = 0; i < wheres.length; i++) {
String where = wheres[i];
sql.append(where);
sql.append(i != wheres.length - 1 ? " AND " : "");
}
}
// 条件
sql.append(where.getSql());
System.out.println("SQL ==> " + sql.toString());
return executeUpdate(sql.toString(), values);
return executeUpdate(sql.toString(), concat(values, where.getArgs()));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
@ -195,7 +184,7 @@ public class ObjectClient extends Client {
return 0;
}
public <T> List<T> select(Class<T> poClass, int pageNumber, int pageSize, T po, String... wheres) throws SQLException, ClassNotFoundException {
public <T> List<T> select(Class<T> poClass, Where where, int pageNumber, int pageSize) throws SQLException, ClassNotFoundException {
ArrayList<T> list = new ArrayList<>();
try {
Class aClass = classMap.get(poClass.getName());
@ -207,8 +196,6 @@ public class ObjectClient extends Client {
//获取字段列表
List<Field> fs = getFields(poClass);
List<String> poWhere = new ArrayList();
List<Object> args = new ArrayList();
for (int i = 0; i < fs.size(); i++) {
Field f = fs.get(i);
@ -216,28 +203,13 @@ public class ObjectClient extends Client {
if (i != fs.size() - 1) {
sql.append(",");
}
if (po != null) {
if (f.get(po) != null) {
poWhere.add(" " + f.getName().toUpperCase() + " = ? ");
args.add(f.get(po));
}
}
}
sql.append(" FROM ");
sql.append(aClass.getSimpleName());
poWhere.addAll(Arrays.asList(wheres));
//条件参数
if (poWhere.size() + wheres.length > 0) {
sql.append(" WHERE ");
for (int i = 0; i < poWhere.size(); i++) {
String where = wheres[i];
sql.append(where);
sql.append(i != wheres.length - 1 ? " AND " : "");
}
}
// 条件
sql.append(where.getSql());
//分页参数
if (pageSize > 0) {
@ -245,10 +217,8 @@ public class ObjectClient extends Client {
}
System.out.println("SQL ==> " + sql.toString());
list.addAll(executeQuery(poClass, sql.toString(), args));
list.addAll(executeQuery(poClass, sql.toString(), where.getArgs()));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} finally {
destroyed();
}
@ -310,7 +280,7 @@ public class ObjectClient extends Client {
byte[] v = resultSet.getBytes(f.getName());
f.set(o, v);
} else if (f.getType() == Date.class) {
Date v = resultSet.getDate(f.getName());
Date v = resultSet.getTimestamp(f.getName());
f.set(o, v);
} else {
String v = resultSet.getString(f.getName());
@ -339,4 +309,11 @@ public class ObjectClient extends Client {
}
return fs;
}
private <T> T[] concat(T[] arr1, T[] arr2) {
List<T> temp = new ArrayList<>();
temp.addAll(Arrays.asList(arr1));
temp.addAll(Arrays.asList(arr2));
return (T[]) temp.toArray();
}
}

@ -0,0 +1,94 @@
package xyz.wbsite.wsqlite;
import java.util.ArrayList;
import java.util.List;
public class Where {
private String sql;
private Object[] args;
private Where() {
}
public String getSql() {
return sql;
}
public void setSql(String sql) {
this.sql = sql;
}
public Object[] getArgs() {
return args;
}
public void setArgs(Object[] args) {
this.args = args;
}
public Where(String sql, Object[] args) {
this.sql = sql;
this.args = args;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private StringBuilder sb = new StringBuilder();
private List<Object> argsList = new ArrayList<>();
public Builder eq(String name, Object value) {
return eq(true, name, value);
}
public Builder like(String name, Object value) {
return like(true, name, value);
}
public Builder isNull(String name, Object value) {
return isNull(true, name, value);
}
public Builder isNotNull(String name, Object value) {
return isNotNull(true, name, value);
}
public Builder eq(boolean condition, String name, Object value) {
if (condition) {
sb.append(sb.length() > 0 ? " and " : " where ").append(name).append(" = ? ");
argsList.add(value);
}
return this;
}
public Builder like(boolean condition, String name, Object value) {
if (condition) {
sb.append(sb.length() > 0 ? " and " : " where ").append(name).append("like ?");
argsList.add(value);
}
return this;
}
public Builder isNull(boolean condition, String name, Object value) {
if (condition) {
sb.append(sb.length() > 0 ? " and " : " where ").append(name).append("is null");
argsList.add(value);
}
return this;
}
public Builder isNotNull(boolean condition, String name, Object value) {
if (condition) {
sb.append(sb.length() > 0 ? " and " : " where ").append(name).append("is not null");
argsList.add(value);
}
return this;
}
public Where build() {
return new Where(sb.toString(), argsList.toArray());
}
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.