wex5能否链接sql2005
1 概述
本案例实现了对takeout_order(外卖订单表)表的分页查询、关键字检索和修改保存的源码运营能力,数据库表结构参见WeX5自带的卖源码mysql数据库。
案例代码分为服务端和客户端两部分:
服务端包含一个servlet(com.justep.baas.test.DemoServlet),外卖l外用于为客户端提供数据查询和数据保存的源码运营Web服务;
客户端包含一个.w页面(/UI2/demo/baas/simpleData/index.w),页面上的卖源码帮赚app源码数据集通过ajax请求访问服务端提供的Web服务,实现数据的外卖l外增删改查。
2 服务端
服务端实现了一个servlet(com.justep.baas.test.DemoServlet),源码运营用于为客户端提供数据查询和数据保存的卖源码Web服务。
2.1 导入baas工程
运行“启动WeX5开发工具.bat”;
打开Java透视图,外卖l外选择菜单“窗口-打开透视图-Java”;
导入baas工程,源码运营选择菜单“文件-导入”,卖源码选择“常规-现有项目到工作空间中”,外卖l外“下一步”,源码运营“选择根目录-浏览”,卖源码选择WeX5目录下“apache-tomcat\webapps\baas”,“完成”。
2.2 JNDI数据源配置
/baas/META-INF/context.xml
<?xml version=“1.0” encoding=“UTF-8″?>
<Context reloadable=“true”>
<Resource name=“jdbc/takeout” type=“javax.sql.DataSource”
maxActive=“” maxIdle=“”
driverClassName=“com.mysql.jdbc.Driver” url=“jdbc:mysql://.0.0.1:/takeout”
username=“root” password=“x5″ />
</Context>
注意:
Tomcat 6启动时,自动将“/baas/META-INF/context.xml”复制一份到“\apache-tomcat\conf\Catalina\localhost\baas.xml”。但是当context.xml内容修改后,Tomcat并不会自动更新。所以,修改context.xml的内容后,需要手动更新“\apache-tomcat\conf\Catalina\localhost\baas.xml”。切记!切记!
特别注意:
由于Tomcat 6的bug(.justep.baas.test.DemoServlet
// Servlet入口,通过判断action参数,进入各自对应的实现方法
public void service(ServletRequest request, ServletResponse response) throws ServletException {
try {
String action = request.getParameter(“action”);
if (“queryOrder”.equals(action)) {
queryOrder(request, response);
} else if (“saveOrder”.equals(action)) {
saveOrder(request, response);
}
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
}
这里实现了queryOrder和saveOrder两个action。
// 查询订单,源码阅读网课程实现了分页查询和按检索关键字过滤
private static void queryOrder(ServletRequest request, ServletResponse response) throws SQLException, IOException, NamingException {
// 参数序列化
JSONObject params = (JSONObject) JSONObject.parse(request.getParameter(“params”));
// 获取参数
JSONObject columns = params.getJSONObject(“columns”); // 要返回的数据列定义,里面包含列名和列数据类型
Integer limit = params.getInteger(“limit”); // 分页查询的行数
Integer offset = params.getInteger(“offset”); // 分页查询的行偏移
String search = params.getString(“search”); // 检索关键字
// 存放SQL中的参数值
List<Object> sqlParams = new ArrayList<Object>();
// 存放SQL中的过滤条件
List<String> filters = new ArrayList<String>();
if (!Util.isEmptyString(search)) {
// 增加过滤条件
filters.add(“fUserName LIKE ? OR fPhoneNumber LIKE ? OR fAddress LIKE ? OR fContent LIKE ?”);
// 检索关键字中如果没有%,则前后自动加%
search = (search.indexOf(“%”) != -1) ? search : “%” + search + “%”;
// 增加参数值,参数的个数和顺序必须与过滤条件的?相匹配
for (int i = 0; i < 4; i++) {
sqlParams.add(search);
}
}
Table table = null;
// 获取数据源连接
Connection conn = Util.getConnection(DATASOURCE_TAKEOUT);
try {
// 执行单表数据查询,返回Table
table = Util.queryData(conn, TABLE_TAKEOUT_ORDER, columns, filters, “fCreateTime DESC”, sqlParams, offset, limit);
} finally {
// 必须关闭数据源连接
conn.close();
}
// 输出Table做为返回结果,这里会自动转换为Table的JSON格式
Util.writeTableToResponse(response, table);
}
// 保存订单
private static void saveOrder(ServletRequest request, ServletResponse response) throws ParseException, SQLException, NamingException {
// 参数序列化
JSONObject params = (JSONObject) JSONObject.parse(request.getParameter(“params”));
// 获取参数
JSONObject data = params.getJSONObject(“data”); // 订单数据的JSON格式
// JSON转换Table
Table table = Transform.jsonToTable(data);
// 获取数据源连接
Connection conn = Util.getConnection(DATASOURCE_TAKEOUT);
try {
// 开启事务
conn.setAutoCommit(false);
try {
// 保存Table
Util.saveData(conn, table, TABLE_TAKEOUT_ORDER);
// 提交事务
conn.commit();
} catch (SQLException e) {
// 如果发生异常,首先回滚事务,然后把异常继续抛出
conn.rollback();
throw e;
}
} finally {
// 必须关闭数据源连接
conn.close();
}
}
在上面的代码中,大多数都是用来处理参数、数据库连接和事务的代码,核心代码其实只有以下几句:
// 执行单表数据查询,返回Table
table = Util.queryData(conn, TABLE_TAKEOUT_ORDER, columns, filters, “fCreateTime DESC”, sqlParams, offset, limit);
// 输出Table做为返回结果,这里会自动转换为Table的JSON格式
Util.writeTableToResponse(response, table);
// JSON转换Table
Table table = Transform.jsonToTable(data);
// 保存Table
Util.saveData(conn, table, TABLE_TAKEOUT_ORDER);
2.4 Servlet配置
/baas/WEB-INF/web.xml
<servlet>
<servlet-name>X5 Baas Demo Servlet</servlet-name>
<servlet-class>com.justep.baas.test.DemoServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>X5 Baas Demo Servlet</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
3 客户端
客户端通过data组件的自定义刷新(onCustomRefresh)和自定义保存(onCustomSave)事件,实现页面数据与后台servlet服务的交互。
[博学谷学习记录]超强总结,用心分享|瑞吉外卖
软件开发整体介绍
1.1 软件开发流程
1.2 角色分工
1.3 软件环境
2、瑞吉外卖项目介绍
2.1 项目介绍
2.2 产品原型展示
2.3 技术选型
2.4 功能架构
2.5 角色
3、开发环境搭建
3.1 数据库环境搭建 创建项目对应的数据库(图形界面或命令行都可以) 导入表结构(资料/数据模型/db.reggie.sql) 数据表
3.2 maven项目搭建 (1)创建maven项目 创建maven项目:项目名称reggie_take_out (2)导入pom.xml文件 (4)编写启动类 (5)配置类静态资源映射 注意:直接访问后端静态资源页面失败,原因:springboot默认只能访问static/template目录下的页面,所以需要编写过滤静态资源的配置类。
4.2 代码开发
(1)编写mapper层,继承BaseMapper @Mapper public interface EmployeeMapper extends BaseMapper { } (2)编写Service层 public interface EmployeeService extends IService { } @Service public class EmployeeServiceImpl extends ServiceImpl implements EmployeeService { } (3)编写controller层 @Slf4j @RestController @RequestMapping("/employee") public class EmployeeController { @Autowired private EmployeeService employeeService; }
5、后台退出功能的开发
5.1 需求分析
5.2 代码开发 在EmployeeController类中添加logout方法 //退出登录 @PostMapping("/logout") public R logout(HttpServletRequest request){ //清楚session中保存的员工id request.getSession().removeAttribute("employee"); return R.success("退出成功"); } 5.3 功能测试 登录成功时 退出登录时
Semantic Kernel 视角下的 Text2SQL 实践与思考
《诗经》有言:七月流火,九月授衣,描绘夏秋交替、天气由热转凉的季节变化。西安的雨季,自六月下旬悄然而至、连绵不绝,古人诚不欺我。雅漫社源码下载前有萝卜快跑及其无人驾驶引发热议,后有特朗普竞选集会遇刺,洞庭湖决口、西二环塌方,成长便是学会心平气和地面对这世界的兵荒马乱。历史似乎被诅咒了时间?两年前,安倍晋三遇刺,我写《杂感·七月寄望》。回想起两人长达秒的握手画面,有种“一笑泯恩仇”的错觉,似乎成为了共患难的“战友”。雍正之于万历,特朗普之于肯尼迪,时过境迁,似曾相识,世间万物总逃不出某种循环。最近,从 RAG 到 Agent,再到微软 GraphRAG 的爆火,激活了 Graph、NER、知识图谱等知识点。我需要一篇文章整理思绪。
实现 Agent 后,参照复旦大学的 RAG 综述论文,目标转向 Agent。一个 Agent 至少具备规划、记忆、工具使用能力。源码商城需要哪些资质Agent 从说话进化到做事,标志着大模型的进步。市场上主流新能源汽车的智驾系统大多处于 L2 或 L3 级别,萝卜快跑则迈进 L4 级别。科技创新可能导致成千上万的人失业,是否过于残酷和冰冷?接触多种 Agent 产品,如 FastGPT、Coze、Dify,它们基于工作流编排,是大型模型输出不稳定和多轮对话调用成本的妥协。我坚信动态规划和执行任务的能力才是未来。参考 Semantic Kernel 实现了支持 ReAct 模式的 Planner。
主张小模型结合插件推进 AI 服务本地化,平衡技术和成本,避免永无休止的百模大战。GraphRAG 知识图谱结合大模型虽好,构建成本相对较高,费用在5到美元。使用阿里的 Qwen2-7B 模型支持任务规划、参数提取,Ollama 推理速度较慢。Agent 反思功能依赖多轮对话,效果受上下文长度影响。使用 OpenAI、Moonshot 等服务,TPM/RPM 通常不高,难以满足 Agent 运行需求。Agent 的冲击波公式源码 token 消耗量在任务导向下是一笔不小的开销。
调试过程中,我将 OpenAI 和 Moonshot 用至“欠费”,转向更为经济的 DeepSeek。有人抱怨生成答案时间变长,这在 Agent 中同样存在。大模型观察当前结果,尝试使用不同工具解决问题,但往往耗费时间和金钱,未能得到满意答案。关键推理能力来自模型本身,提示词只是锦上添花。面对完全未知事物,这一切有何意义?以电商业务为例,数据链路长、涉及多个微服务,难以满足强一致性和低延迟。这一道理同样适用于 Agent,动态规划和人工编排的工作流,接受可能耗费大量时间的现实。对于 RAG 这样的检索型任务,需要平衡检索精度和响应时间。
接入日期/时间、天气预报、新闻报道、搜索引擎、网络爬虫等工具后,感觉一切索然无味,大模型不再像原来那样“开朗”,甚至变得不苟言笑起来。它变成了合格的“工具人”,但是否应该这样修饰?一切的元凶在于外部知识“污染”了它的先验知识,它并不比市面上的 AI 助手强大多少。
Text2SQL 实践将大型模型与关系型数据库连接,实现 Agent 后发现 RAG 是一个工具,广义的 RAG 并非局限于向量数据库,可以扩展到搜索引擎、知识图谱、第三方 API、数据源等。大模型可以从数据库读取信息,掌握广泛数据源。SQL 和 Python、C# 等编程语言类似,属于代码生成范畴,SQL 更简单。Text2SQL 技术让大模型生成 SQL 语句,从大模型到数据库的链路打通。实现步骤包括获取数据库 Schema,了解表和字段,通过代码生成 Schema 信息,将 Schema 作为参数传入提示词模板。实现后,用户给出查询,大模型生成 SQL 语句执行,返回结果,最后生成最终答案。面对复杂查询,大模型力不从心,出现各类问题。总的来说,Text2SQL 虽有不足,但让大模型连接关系型数据库成为可能。技术不应成为普通人使用和学习的门槛,应该让万物与大模型连接,成为不可或缺的基础设置。
对效率的反思,追求效率最大化,技术编织的“效率提升”陷阱。聊天软件方便沟通,但难以理解对方想法,信息处理效率提升,但世界变得不那么真实。算法将人们关进信息茧房,外卖员时间压缩,开发周期缩短。新的技术带来机遇,但真正追求的效率应该让人感到幸福。无人驾驶、生成式 AI 虽然正确,但不一定带来幸福感。实现 Agent 后,发现价值有限,AI 满足情绪需求,人类依然需要主动推导答案。文章小结:文章内容与标题联系松散,难以整理清晰知识体系。面对大量碎片化信息,难以在短时间内整理,技术进步带来便利,也带来了内卷和不幸福感。文章试图表达的远不止 Text2SQL,但只能找到这个话题。在职场中,为员工设置障碍以确保工作量,是职场中的潜规则。技术没有立场,真正推动效率的始终是人。文章反思效率提升对人类的负面影响,寻求更人性化、幸福感更高的效率模式。
搜索引擎新架构:与SQL不得不说的故事
搜索引擎HA3架构的革新:SQL新角色
在面对深度学习和数据规模挑战时,阿里巴巴搜索引擎HA3架构通过革新性地运用SQL,巧妙应对。HA3架构由在线和离线两部分构成:在线服务采用2层结构,包含QRS和search,负责处理请求和检索;离线处理则包括数据预处理和索引构建,强调实时性和大规模更新的能力。
HA3的核心特点包括高性能、丰富索引和算法框架,但在业务发展下,它面临深度学习渗透和数据维度膨胀的挑战。深度学习的复杂网络结构和实时更新对索引提出了高要求,而数据维度的增加导致数据更新规模急剧扩大,原有的解决方案如拆分引擎实例并不能满足需求。
HA3的新解决方案通过SQL执行方式重塑搜索,主要改变包括:扩展支持多表独立操作,将离线join变为在线查询时的实时处理;抛弃旧的pipeline模式,采用DAG图化执行,将搜索功能抽象为可复用的算子;以SQL表达查询流程,简化用户操作,充分利用SQL生态基础功能。
实践中,如饿了么外卖搜索、淘宝本地生活服务、钉钉钉盘搜索和内部监控系统的改进,都展示了HA3新架构在性能提升和功能复用上的优势,解决了深度学习整合、数据实时更新和权限控制等问题。
校园外卖系统有哪些,怎么做?
1. 校园外卖系统的实现方式:
- 自主开发:根据校园需求,独立开发系统,需具备编程技能和开发经验,同时确保安全性、稳定性、易用性。
- 利用第三方平台:通过美团外卖、饿了么等第三方平台服务,减少开发成本和时间,但需支付手续费和佣金。
- 应用模板:采用如阿里云市场提供的校园外卖系统模板,快速构建系统,需进行定制化开发和调试。
2. 系统实现需考虑的方面:
- 用户端功能:包括登录、注册、浏览菜单、下单、支付等交互功能。
- 商家端功能:涉及商家登录、注册、菜单发布、接单、订单管理等操作。
- 后台管理:系统配置、数据管理、统计分析等管理功能。
- 安全与稳定性:数据加密、防止SQL注入、抵御DDoS攻击等安全措施。
- 用户体验:页面设计、交互逻辑、响应速度等用户体验设计。
综上所述,构建校园外卖系统应全面考虑技术实现、业务需求和用户体验,选择合适的开发方法和技术架构,并认真进行开发与测试工作。
2024-12-29 09:03
2024-12-29 08:29
2024-12-29 08:05
2024-12-29 07:40
2024-12-29 07:17