- 浏览: 524183 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (422)
- 重要 (12)
- BUG解决备忘录 (32)
- 环境搭建 (17)
- 开源组件 (4)
- 数据库 (16)
- 设计模式 (4)
- 测试 (3)
- javascript (5)
- Android (14)
- jdk相关 (9)
- struts2 (10)
- freemark (3)
- 自定义扩展及工具类 (5)
- jdk5新特性及java基础 (13)
- ssh及其他框架 (15)
- linux (32)
- tcp-ip http协议 (8)
- 服务器集群与负载均衡 (34)
- 项目管理相关 (11)
- 实用小技术 (10)
- 架构相关 (14)
- firefox组件 (11)
- spider (6)
- 产品设计 (11)
- PHP (1)
- ws (4)
- lucene (10)
- 其他 (2)
- BI (1)
- NoSQL (3)
- gzip (1)
- ext (4)
- db (6)
- socket (1)
- 源码阅读 (2)
- NIO (2)
- 图片处理 (1)
- java 环境 (2)
- 项目管理 (4)
- 从程序员到项目经理(一):没有捷径 (1)
- bug (1)
- JAVA BASE (8)
- 技术原理 (0)
- 新框架新技术 (1)
- 量化与python (1)
- 系统编程 (0)
- C语言 (0)
- 汇编 (0)
- 算法 (0)
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:
* 搜索引擎抽象层(使用Lucene搜索引荐),
* OSEM (Object/Search Engine Mapping) 支持,
* 事务管理,
* 类似于Google的简单关键字查询语言,
* 可扩展与模块化的框架,
* 简单的API.
如果你需要做站内搜索引擎,而且项目里用到了hibernate,那用compass是你的最佳选择。
本文用到compass2.14和IK中文分词包,另外将会使用注解来实现
废话不说,先给出关键的实现代码
假如现在有个需求,需要根据关键字搜索出文章,
Java代码
- @Searchable (alias= "article" )
- public class Article {
- private Long ID; // 标识ID
- private String content; // 正文
- private String title; // 文章标题
- private Date createTime; // 创建时间
- @SearchableId
- public Long getID() {
- return ID;
- }
- public void setID(Long id) {
- ID = id;
- }
- @SearchableProperty (index = Index.TOKENIZED, store = Store.YES)
- public String getContent() {
- return content;
- }
- public void setContent(String content) {
- this .content = content;
- }
- @SearchableProperty (index = Index.TOKENIZED, store = Store.YES)
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this .title = title;
- }
- @SearchableProperty (index = Index.TOKENIZED, store = Store.YES)
- public Date getCreateTime() {
- return createTime;
- }
- public void setCreateTime(Date createTime) {
- this .createTime = createTime;
- }
- }
@Searchable(alias="article") public class Article { private Long ID; // 标识ID private String content; // 正文 private String title; // 文章标题 private Date createTime; // 创建时间 @SearchableId public Long getID() { return ID; } public void setID(Long id) { ID = id; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getContent() { return content; } public void setContent(String content) { this.content = content; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } }
简单解释一下:
@Searchable(alias="article")表示这个是可以搜索实体,别人为article.
@SearchableId 这个是实体搜索的标识ID,和hibernate里的概念差不多,用来区分索引文件里的实体索引。
@SearchableProperty(index = Index.TOKENIZED, store = Store.YES) 表示这个属性存入索引文件,而且是在分词后在存入.
接下来是要建立搜索的服务类
索引的查询主要是根据传过来的参数,关键字keywords,是搜索的关键字,类型type,先判断是不是要搜索文章,因为一般来说,页面的搜索引擎不单单只搜索文章一个实体.
至于int 和end是为了分页取出部分结果的.
String title = hits.highlighter(i).fragment("title");这段是检索titile这个属性有没有出现搜索的关键字,有就将它高亮 (其实就是在关键字前后加个<font></font>的html标记设置颜色,等下可以看到在配置文件里可以自由设置高亮的颜 色).
String content = hits.highlighter(i).setTextTokenizer(
CompassHighlighter.TextTokenizer.AUTO)
.fragment("content");
这段代码和上面的title具有一样的一样的功能,另外还多了个很重要的功能,自动选择正文中最匹配关键字的内容中的一部分输出。因为很多时候一篇文章几千字,我们只想显示有关键字的那部分的摘要,这时候这个功能就很方便.
这之后还要写一个建立索引的服务类,让服务器启动的时候或者定时重建索引.
实现了spring的InitializingBean接口,让服务器启动,bean初始化的时候去建立索引
剩下的就是配置文件了
至于action就不列出代码了,很简单了,只需要传搜索方法的那几个参数过去就可以了.
最后看一下搜索结果示例图:
Java代码
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.compass.core.Compass;
- import org.compass.core.CompassCallback;
- import org.compass.core.CompassException;
- import org.compass.core.CompassHighlighter;
- import org.compass.core.CompassHits;
- import org.compass.core.CompassQuery;
- import org.compass.core.CompassSession;
- import org.compass.core.CompassTemplate;
- import org.compass.core.CompassTransaction;
- import cn.rgcenter.entity.Article;
- public class SearchServiceBean {
- private Compass compass;
- /** 索引查询 * */
- public Map find( final String keywords, final String type, final int start,
- final int end) {
- CompassTemplate ct = new CompassTemplate(compass);
- return ct.execute( new CompassCallback<Map>() {
- public Map doInCompass(CompassSession session)
- throws CompassException {
- List result = new ArrayList();
- int totalSize = 0 ;
- Map container = new HashMap();
- CompassQuery query = session.queryBuilder().queryString(
- keywords).toQuery();
- CompassHits hits = query.setAliases(type).hits();
- totalSize = hits.length();
- container.put("size" , totalSize);
- int max = 0 ;
- if (end < hits.length()) {
- max = end;
- } else {
- max = hits.length();
- }
- if (type.equals( "article" )){
- for ( int i = start; i < max; i++) {
- Article article = (Article) hits.data(i);
- String title = hits.highlighter(i).fragment("title" );
- if (title != null ) {
- article.setTitle(title);
- }
- String content = hits.highlighter(i).setTextTokenizer(
- CompassHighlighter.TextTokenizer.AUTO)
- .fragment("content" );
- if (content != null ) {
- article.setContent(content);
- }
- result.add(article);
- }
- }
- container.put("result" , result);
- return container;
- }
- });
- }
- public Compass getCompass() {
- return compass;
- }
- public void setCompass(Compass compass) {
- this .compass = compass;
- }
- }
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.compass.core.Compass; import org.compass.core.CompassCallback; import org.compass.core.CompassException; import org.compass.core.CompassHighlighter; import org.compass.core.CompassHits; import org.compass.core.CompassQuery; import org.compass.core.CompassSession; import org.compass.core.CompassTemplate; import org.compass.core.CompassTransaction; import cn.rgcenter.entity.Article; public class SearchServiceBean { private Compass compass; /** 索引查询 * */ public Map find(final String keywords, final String type, final int start, final int end) { CompassTemplate ct = new CompassTemplate(compass); return ct.execute(new CompassCallback<Map>() { public Map doInCompass(CompassSession session) throws CompassException { List result = new ArrayList(); int totalSize = 0; Map container = new HashMap(); CompassQuery query = session.queryBuilder().queryString( keywords).toQuery(); CompassHits hits = query.setAliases(type).hits(); totalSize = hits.length(); container.put("size", totalSize); int max = 0; if (end < hits.length()) { max = end; } else { max = hits.length(); } if(type.equals("article")){ for (int i = start; i < max; i++) { Article article = (Article) hits.data(i); String title = hits.highlighter(i).fragment("title"); if (title != null) { article.setTitle(title); } String content = hits.highlighter(i).setTextTokenizer( CompassHighlighter.TextTokenizer.AUTO) .fragment("content"); if (content != null) { article.setContent(content); } result.add(article); } } container.put("result", result); return container; } }); } public Compass getCompass() { return compass; } public void setCompass(Compass compass) { this.compass = compass; } }
索引的查询主要是根据传过来的参数,关键字keywords,是搜索的关键字,类型type,先判断是不是要搜索文章,因为一般来说,页面的搜索引擎不单单只搜索文章一个实体.
至于int 和end是为了分页取出部分结果的.
String title = hits.highlighter(i).fragment("title");这段是检索titile这个属性有没有出现搜索的关键字,有就将它高亮 (其实就是在关键字前后加个<font></font>的html标记设置颜色,等下可以看到在配置文件里可以自由设置高亮的颜 色).
String content = hits.highlighter(i).setTextTokenizer(
CompassHighlighter.TextTokenizer.AUTO)
.fragment("content");
这段代码和上面的title具有一样的一样的功能,另外还多了个很重要的功能,自动选择正文中最匹配关键字的内容中的一部分输出。因为很多时候一篇文章几千字,我们只想显示有关键字的那部分的摘要,这时候这个功能就很方便.
这之后还要写一个建立索引的服务类,让服务器启动的时候或者定时重建索引.
Java代码
- import org.compass.gps.CompassGps;
- import org.springframework.beans.factory.InitializingBean;
- public class CompassIndexBuilder implements InitializingBean {
- // 是否需要建立索引,可被设置为false使本Builder失效.
- private boolean buildIndex = false ;
- // 索引操作线程延时启动的时间,单位为秒
- private int lazyTime = 10 ;
- // Compass封装
- private CompassGps compassGps;
- // 索引线程
- private Thread indexThread = new Thread() {
- @Override
- public void run() {
- try {
- Thread.sleep(lazyTime * 1000 );
- System.out.println("begin compass index..." );
- long beginTime = System.currentTimeMillis();
- // 重建索引.
- // 如果compass实体中定义的索引文件已存在,索引过程中会建立临时索引,
- // 索引完成后再进行覆盖.
- compassGps.index();
- long costTime = System.currentTimeMillis() - beginTime;
- System.out.println("compss index finished." );
- System.out.println("costed " + costTime + " milliseconds" );
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- };
- /**
- * 实现<code>InitializingBean</code>接口,在完成注入后调用启动索引线程.
- */
- public void afterPropertiesSet() throws Exception {
- if (buildIndex) {
- indexThread.setDaemon(true );
- indexThread.setName("Compass Indexer" );
- indexThread.start();
- }
- }
- public void setBuildIndex( boolean buildIndex) {
- this .buildIndex = buildIndex;
- }
- public void setLazyTime( int lazyTime) {
- this .lazyTime = lazyTime;
- }
- public void setCompassGps(CompassGps compassGps) {
- this .compassGps = compassGps;
- }
- }
import org.compass.gps.CompassGps; import org.springframework.beans.factory.InitializingBean; public class CompassIndexBuilder implements InitializingBean { // 是否需要建立索引,可被设置为false使本Builder失效. private boolean buildIndex = false; // 索引操作线程延时启动的时间,单位为秒 private int lazyTime = 10; // Compass封装 private CompassGps compassGps; // 索引线程 private Thread indexThread = new Thread() { @Override public void run() { try { Thread.sleep(lazyTime * 1000); System.out.println("begin compass index..."); long beginTime = System.currentTimeMillis(); // 重建索引. // 如果compass实体中定义的索引文件已存在,索引过程中会建立临时索引, // 索引完成后再进行覆盖. compassGps.index(); long costTime = System.currentTimeMillis() - beginTime; System.out.println("compss index finished."); System.out.println("costed " + costTime + " milliseconds"); } catch (InterruptedException e) { e.printStackTrace(); } } }; /** * 实现<code>InitializingBean</code>接口,在完成注入后调用启动索引线程. */ public void afterPropertiesSet() throws Exception { if (buildIndex) { indexThread.setDaemon(true); indexThread.setName("Compass Indexer"); indexThread.start(); } } public void setBuildIndex(boolean buildIndex) { this.buildIndex = buildIndex; } public void setLazyTime(int lazyTime) { this.lazyTime = lazyTime; } public void setCompassGps(CompassGps compassGps) { this.compassGps = compassGps; } }
实现了spring的InitializingBean接口,让服务器启动,bean初始化的时候去建立索引
剩下的就是配置文件了
Java代码
- <?xml version= "1.0" encoding= "UTF-8" ?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <bean id="annotationConfiguration"
- class = "org.compass.annotations.config.CompassAnnotationsConfiguration" >
- </bean>
- <!-- compass Bean -->
- <bean id="compass" class = "org.compass.spring.LocalCompassBean" >
- <property name="compassConfiguration"
- ref="annotationConfiguration" />
- <!-- 数据索引存储位置 -->
- <property name="connection" >
- <value>/compass/indexes</value>
- </property>
- <property name="transactionManager" ref= "transactionManager" />
- <property name="compassSettings" >
- <props>
- <prop key="compass.transaction.factory" >
- org.compass.spring.transaction.SpringSyncTransactionFactory
- </prop>
- <prop
- key="compass.engine.highlighter.default.formatter.simple.pre" >
- <![CDATA[<span style='background-color:yellow;color:red;' >]]>
- </prop>
- <prop
- key="compass.engine.highlighter.default.formatter.simple.post" >
- <![CDATA[</span>]]>
- </prop>
- <!--定义分词器-->
- <prop
- key="compass.engine.analyzer.default.type" >
- org.mira.lucene.analysis.IK_CAnalyzer
- </prop>
- </props>
- </property>
- <property name="classMappings" >
- <list>
- <value>cn.rgcenter.entity.Article</value>
- </list>
- </property>
- </bean>
- <!--hibernate驱动-->
- <bean id="hibernateGpsDevice"
- class = "org.compass.spring.device.hibernate.dep.SpringHibernate3GpsDevice" >
- <property name="name" >
- <value>hibernateDevice</value>
- </property>
- <property name="sessionFactory" ref= "sessionFactory" />
- <property name="mirrorDataChanges" >
- <value>true </value>
- </property>
- </bean>
- <!-- 数据库中的数据变化后同步更新索引 -->
- <bean id="hibernateGps"
- class = "org.compass.gps.impl.SingleCompassGps" init-method= "start"
- destroy-method="stop" >
- <property name="compass" >
- <ref bean="compass" />
- </property>
- <property name="gpsDevices" >
- <list>
- <bean
- class = "org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper" >
- <property name="gpsDevice" ref= "hibernateGpsDevice" />
- </bean>
- </list>
- </property>
- </bean>
- <!-- compass模版 -->
- <bean id="compassTemplate"
- class = "org.compass.core.CompassTemplate" >
- <property name="compass" ref= "compass" />
- </bean>
- <!-- 定时重建索引(利用quartz)或随Spring ApplicationContext启动而重建索引 -->
- <bean id="compassIndexBuilder"
- class = "cn.rgcenter.compass.service.CompassIndexBuilder"
- lazy-init="false" >
- <property name="compassGps" ref= "hibernateGps" />
- <property name="buildIndex" value= "true" />
- <property name="lazyTime" value= "5" />
- </bean>
- <!-- 搜索引擎服务类 -->
- <bean id="searchService"
- class = "cn.rgcenter.compass.service.SearchServiceBean" >
- <property name="compass" >
- <ref bean="compass" />
- </property>
- </bean>
- <!-- 搜索引擎Action -->
- <bean id="searchAction" class = "cn.rgcenter.action.SearchAction" >
- <property name="searchService" >
- <ref bean="searchService" />
- </property>
- </bean>
- </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="annotationConfiguration" class="org.compass.annotations.config.CompassAnnotationsConfiguration"> </bean> <!-- compass Bean --> <bean id="compass" class="org.compass.spring.LocalCompassBean"> <property name="compassConfiguration" ref="annotationConfiguration" /> <!-- 数据索引存储位置 --> <property name="connection"> <value>/compass/indexes</value> </property> <property name="transactionManager" ref="transactionManager" /> <property name="compassSettings"> <props> <prop key="compass.transaction.factory"> org.compass.spring.transaction.SpringSyncTransactionFactory </prop> <prop key="compass.engine.highlighter.default.formatter.simple.pre"> <![CDATA[<span style='background-color:yellow;color:red;'>]]> </prop> <prop key="compass.engine.highlighter.default.formatter.simple.post"> <![CDATA[</span>]]> </prop> <!--定义分词器--> <prop key="compass.engine.analyzer.default.type"> org.mira.lucene.analysis.IK_CAnalyzer </prop> </props> </property> <property name="classMappings"> <list> <value>cn.rgcenter.entity.Article</value> </list> </property> </bean> <!--hibernate驱动--> <bean id="hibernateGpsDevice" class="org.compass.spring.device.hibernate.dep.SpringHibernate3GpsDevice"> <property name="name"> <value>hibernateDevice</value> </property> <property name="sessionFactory" ref="sessionFactory" /> <property name="mirrorDataChanges"> <value>true</value> </property> </bean> <!-- 数据库中的数据变化后同步更新索引 --> <bean id="hibernateGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop"> <property name="compass"> <ref bean="compass" /> </property> <property name="gpsDevices"> <list> <bean class="org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper"> <property name="gpsDevice" ref="hibernateGpsDevice" /> </bean> </list> </property> </bean> <!-- compass模版 --> <bean id="compassTemplate" class="org.compass.core.CompassTemplate"> <property name="compass" ref="compass" /> </bean> <!-- 定时重建索引(利用quartz)或随Spring ApplicationContext启动而重建索引 --> <bean id="compassIndexBuilder" class="cn.rgcenter.compass.service.CompassIndexBuilder" lazy-init="false"> <property name="compassGps" ref="hibernateGps" /> <property name="buildIndex" value="true" /> <property name="lazyTime" value="5" /> </bean> <!-- 搜索引擎服务类 --> <bean id="searchService" class="cn.rgcenter.compass.service.SearchServiceBean"> <property name="compass"> <ref bean="compass" /> </property> </bean> <!-- 搜索引擎Action --> <bean id="searchAction" class="cn.rgcenter.action.SearchAction"> <property name="searchService"> <ref bean="searchService" /> </property> </bean> </beans>
至于action就不列出代码了,很简单了,只需要传搜索方法的那几个参数过去就可以了.
最后看一下搜索结果示例图:
相关推荐
python毕业设计-基于Django的购物商城系统源码+数据库+运行文档+接口文档.zip文件 该项目是个人项目源码,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!!!评审分达到95分以上。资源项目的难度比较适中 本项目前后端进行了分离,前端使用vue实现,并且前端代码已经打包好放在static目录下 后端使用django的views.py来制作api接口,具体请求接口可以查看API接口文档.md 环境要求:MySQL 8、python3.11、django4.2、pymysql 如何运行 1、下载本项目到你的电脑后解压 2、附加数据库 将根目录下的 sports_shop.sql 附加到你的mysql中 3、修改数据库连接语句 在sports_shop_backend_war/dao.py文件中,将登录名和密码修改为你mysql的配置 修改数据库连接语句 4、pip安装所需的库 pip install django==4.2 pip install pymysql 5、运行项目 前端已经写死了请求后端api的基准地址为http://127.0.0.1
松下FP-X的模拟量控制,程序,用于空调冷冻泵的。 用AFPX -TC2模拟量输入和AFPX-DA2模拟量输出控制 变频冷冻泵的转速 本程序可手动、自动控制,简便易懂,
串口调试源码是计算机通信领域的一个重要工具,主要用于设备间的串行数据传输。在本例中,我们讨论的是一个由VC++编写的串口调试工具的源代码,该工具设计为单线程通信,特别适合于使用MFC(Microsoft Foundation Classes)进行编程的开发者。MFC是微软提供的一套C++类库,它封装了Windows API,简化了Windows应用程序的开发。通过将串口通信功能打包成一个类,这个源代码提供了易于使用的接口,降低了开发者在实现串口通信时的复杂性。 串口通信是计算机与其他设备之间进行数据交换的一种方式,常见于嵌入式系统、工业控制设备和一些实验装置中。串口通常使用RS-232标准,它定义了电压水平、信号线配置、数据速率等通信参数。在VC++中,实现串口通信通常需要操作Win32 API的CreateFile、SetCommState、ReadFile和WriteFile等函数。 SCOMMV2322可能是这个串口调试工具类库的名字,可能包含了一个或多个头文件(如SCOMMV23。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
脚本探索了泊松方程的解,该方程控制着由导电表面定义的区域中的静电势,并包含二维电荷密度分布。它展示了如何为PDE模型定义非恒定电荷密度,并说明了如何自定义几何创建函数,如圆环,以创建具有非标准参数值的简单几何。该脚本将电势的数值结果与包含在导电圆柱表面内并与之同心的均匀体积电荷密度圆柱体(杆)的解析形式进行了比较。
【jupyter notebook】优达学城-机器学习-毕业项目-猫狗大战
【nodejs】Nodejs、Express框架、消息中间件(实时聊天)
三相离网逆变器在不对称负载下的正负序控制matlab仿真: 1'不对称控制包括: 正序分量处理+负序分量处理+正序控制环+负序控制环; 2'正序控制路与负序控制路都采用dq轴上的电容电压外环+电感电流内环控制; 3'直流电压Vdc=700V,总功率15kW,LC滤波,阻性负载; 4'轻重负载切+不对称负载投切均可稳定运行,具体波形如图所示;
电池-超级电容混合储能系统能量管理matlab simulink仿真建模模型 模型正确无误,能跑通 该模型中提出的系统是独立的光伏电池-超级电容器混合储能系统。 提出了一种能量管理技术来控制整个系统的能量供应和存储。
OCR文字检测和识别 MMOCR PaddleOCR 环境配置,程序调试,代码复现 各种前沿文字检测和识别算法复现
【课程设计】实现的金融风控贷款违约预测python源码.zip
【python】使用python爬虫爬取域名的whois信息并存入mysql数据库_pgj
摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用智能无人仓库管理可以有效管理,使信息管理能够更加科学和规范。 智能无人仓库管理在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。 总之,智能无人仓库管理集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。 关键词:智能无人仓库管理;Java语言;Mysql
【vue】猩考证教师资格证考试助手后台系统_pgj
【高分设计】基于卷积神经网络CNN实现植物病害检测源码+pyqt5界面+项目使用说明.zip
【课程设计】tensorrt部署olov9-ros源码+演示视频+项目说明.zip
【毕业设计】基于yolov9实现目标追踪和计数源码.zip
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解)。 3:34页范例参考毕业论文,万字长文,word文档,支持二次编辑。 4:27页范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关教程资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在IDEA中开发。服务端用 Java 并借 ssm 框架(Spring+SpringMVC+MyBatis)搭建后台。前台采用支持 HTML5 的 VUE 框架。用 MySQL 存储数据,可靠性强。 能学到什么: 学会用ssm搭建后台,提升效率、专注业务。学习 VUE 框架构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解)。 3:34页范例参考毕业论文,万字长文,word文档,支持二次编辑。 4:27页范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关教程资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在 IDEA 中开发。服务端用 Java 并借 ssm 框架(Spring+SpringMVC+MyBatis)搭建后台。用 MySQL 存储数据,可靠性强。 能学到什么: 学会用ssm搭建后台,提升效率、专注业务。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
python课程设计-基于Django的购物商城系统源码+数据库+运行文档.zip文件 该项目是个人项目源码,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!!!评审分达到95分以上。资源项目的难度比较适中 本项目前后端进行了分离,前端使用vue实现,并且前端代码已经打包好放在static目录下 后端使用django的views.py来制作api接口,具体请求接口可以查看API接口文档.md 环境要求:MySQL 8、python3.11、django4.2、pymysql 如何运行 1、下载本项目到你的电脑后解压 2、附加数据库 将根目录下的 sports_shop.sql 附加到你的mysql中 3、修改数据库连接语句 在sports_shop_backend_war/dao.py文件中,将登录名和密码修改为你mysql的配置 修改数据库连接语句 4、pip安装所需的库 pip install django==4.2 pip install pymysql 5、运行项目 前端已经写死了请求后端api的基准地址为http://127.0.0.1
液晶面板 搬运抽检设备sw10可编辑全套技术资料100%好用.zip