400-915-1135
java定制开发小程序(定制开发一个小程序多少钱)

java定制开发小程序(定制开发一个小程序多少钱)

发表日期:2022-07-18 08:26:20   作者来源:众诚企业建站   浏览:115


制作一个java小程序,如何用代码实现

你说的是Java应用,还是微信里面的小程序?
小程序前端代码是用h5+css+js技术实现的;而Java可以开发手机app、桌面应用、小程序后端,这就需要学习。开发小程序尽量不要自己动手,可以找第三方机构帮你开发,自己开发太难实现了。
本回答由网友推荐


java定制开发小程序


基于Java的旅游小程序怎么做

首先得了解微信小程序的开发过程。刚开始开发的时候一般都没有自己的服务器及域名。1创建一个maven项目,导入相关依赖;2在配置文件src/main/resources/下创建application.properties文件可以修改一些配置参数等;3在实际项目中可能涉及数据库,还要整合mybatis,在文章中,我仅仅做测试就不做使用数据库的测试。首先创建springboot的入口程序:app.class下面贴上代码;4启动项目时直接右击run即可。


java定制开发小程序


小程序定制开发报价多少?联系电话多少?

普通类微信小程序的定制费用在2-5万元左右,高档类小程序的费用在8万元左右,具体需要根据客户的需求才能进行评估报价。小程序开发联系电话:******


java定制开发小程序


小程序定制开发多少钱?有哪些成本呢?联系电话多少?联系QQ多少?

小程序定制开发的价格在几千到几十万不等,不同的价格对应不同类型的公司需求,而且小程序后期可以更改,非常适合初创企业和发展中的企业。微信上附近的小程序功能,可以帮助商家被五公里范围内的微信用户搜索到,解决当下商家广告无处可打的尴尬,有助于企业产品和品牌的传播。小程序开发联系电话:******,联系QQ:******


java定制开发小程序


用java 写一个小程序

String str= new String("I am tomato");
 byte[] b = new byte[str.length()];
 for(int i=0; i<str.length();i++){
if(str.charAt(i)!=32){
b[i]=(byte)(str.charAt(i)+1);
}else
b[i]=(byte)str.charAt(i);
}
 String str2=new String(b);
 System.out.println(str2);


java定制开发小程序


用java编写一个小程序

abstract class VirtualLife{
int lifeValue;
int attackPowe;
int describe;
public abstract void physicalAttack();
}
abstract class VirtualHero extends VirtualLife{
int defense;
int armor;
}
interface ISkill{
void skillFirst();
void skillSecond();
void skillThird();
void skillFourth();
}
class Ezreal extends VirtualHero implements ISkill{
String hero ="Ezreal";
public void physicalAttack() {
System.out.println(hero+"物理攻击为"+attackPowe);
}
public void skillFirst() {
System.out.println(hero+"使用了技能"+1);
}
public void skillSecond() {
System.out.println(hero+"使用了技能"+2);
}
public void skillThird() {
System.out.println(hero+"使用了技能"+3);
}
public void skillFourth() {
System.out.println(hero+"使用了技能"+4);
}
}
class Annie extends VirtualHero implements ISkill{
String hero ="Annie";
public void physicalAttack() {
System.out.println(hero+"物理攻击为"+attackPowe);
}
public void skillFirst() {
System.out.println(hero+"使用了技能"+1);
}
public void skillSecond() {
System.out.println(hero+"使用了技能"+2);
}
public void skillThird() {
System.out.println(hero+"使用了技能"+3);
}
public void skillFourth() {
System.out.println(hero+"使用了技能"+4);
}
}
class Soliders extends VirtualLife{
public void physicalAttack() {
System.out.println("我是小兵,我的攻击力为"+attackPowe);
}
}
public class Test {
public static void main(String[] args){
Ezreal ezreal=new Ezreal();
ezreal.attackPowe=10;
ezreal.physicalAttack();
Annie annie=new Annie();
annie.attackPowe=20;
annie.physicalAttack();
Soliders solider=new Soliders();
solider.attackPowe=5;
solider.physicalAttack();
}
}


java定制开发小程序


网友:java定制开发小程序

一、前言

现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信小程序,所以现在用这篇文章记录我之前开发的一些经验和一些心得吧。

源码资料获取方式:关注小编+转发文章+私信【 0630】免费获取!!!!

二、主要内容

springboot后端架构构建小程序项目构建小程序api调用后台resetful接口编写小程序调用后台接口免费的https申请linux下部署上线

三、微信小程序项目构建

这些基础的东西我就不过多介绍,大家在刚开始开发的时候一般都没有自己的服务器及域名,所以大家在本地编写的时候,在“详细”下的“项目设置”里面将“不校验域名安全性”勾选。


至于微信小程序的组件,即前端页面的开发希望大家耐住寂寞认真在微信开发平台上。

组件:


*api: *


四、后端详解

我在后端编写主要是用java,当然对其他开发语言熟悉的也可以使用其他语言开发后端。现在我就java编写后端api的讲解。主要框架springboot,开发工具myeclipse,服务器阿里云服务器。

创建一个maven项目,导入相关依赖:

pom.xml依赖

<!-- 统一版本控制 -->  <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version>  </parent>  <dependencies><!-- freemarker渲染页面 --><!--  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><!-- spring boot 核心 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- springboot整合jsp --><!-- tomcat 的支持. --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency>  </dependencies>

在配置文件src/main/resources/下创建application.properties文件可以修改一些配置参数等。

#jsp支持spring.mvc.view.suffix=.jspspring.mvc.view.prefix=/WEB-INF/jsp/#this is set port#server.port=80server.port=443#添加ssl证书#ssl证书文件名server.ssl.key-store=classpath:xxxxxxx.pfxserver.ssl.key-store-password=xxxxxxxxserver.ssl.keyStoreType=xxxxxxxx

在实际项目中可能涉及数据库,还要整合mybatis,在文章中,我仅仅做测试就不做使用数据库的测试。

首先创建springboot的入口程序:app.class下面贴上代码:

@ComponentScan(basePackages= "com.bin")//添加扫包@ComponentScan(basePackages= "")@EnableAutoConfigurationpublic class App{  //启动springboot  public static void main(String[] args) {SpringApplication.run(App.class, args);  }}

启动项目时直接右击run即可。

在写一个测试的controller进行微信小程序与java后端实现通信,controller代码如下:

@RestController@SpringBootApplicationpublic class ControllerText {@RequestMapping("getUser")  public Map<String, Object> getUser(){System.out.println("微信小程序正在调用。。。");Map<String, Object> map = new HashMap<String, Object>();List<String> list = new ArrayList<String>();list.add("zhangsan");list.add("lisi");list.add("wanger");list.add("mazi");map.put("list",list);System.out.println("微信小程序调用完成。。。");return map;  }@RequestMapping("getWord")  public Map<String, Object> getText(String word){Map<String, Object> map = new HashMap<String, Object>();String message = "我能力有限,不要为难我";if ("后来".equals(word)) {message="正在热映的后来的我们是刘若英的处女作。";}else if("微信小程序".equals(word)){message= "想获取更多微信小程序相关知识,请更多的阅读微信官方文档,还有其他更多微信开发相关的内容,学无止境。";}else if("西安工业大学".equals(word)){message="西安工业大学(Xi'an Technological University)简称”西安工大“,位于世界历史名城古都西安,是中国西北地区唯一一所以兵工为特色,以工为主,理、文、经、管、法协调发展的教学研究型大学。原中华人民共和国兵器工业部直属的七所本科院校之一(“兵工七子”),陕西省重点建设的高水平教学研究型大学、陕西省人民政府与中国兵器工业集团、国防科技工业局共建高校、教育部“卓越工程师教育培养计划”试点高校、陕西省大学生创新能力培养综合改革试点学校。国家二级保密资格单位,是一所以"军民结合,寓军于民"的国防科研高校。";}map.put("message", message);return map;  }@RequestMapping("")  public String getText(){return "hello world";  }}

至此简易的后端框架及测试基本完成。

说明:@RestController与@Controller注解的区别@RestController相当于两个注解,它能实现将后端得到的数据在前端页面(网页)中以json串的形式传递。而微信小程序与后台之间的数据传递就是以json报文的形式传递。所以这就是选择springboot框架开发小程序后端的主要原因之一。可以方面我们进行小程序的后端开发。

五、小程序发起网络请求

在完成了小程序的后端开发,下面进行小程序端发起网络请求。

下面以一个简单的按钮请求数据为例:

wxml文件

<button bindtap='houduanButton1'>点击发起请求</button><view wx:for="{{list}}">姓名:{{item}}  </view>

js文件

/*** 页面的初始数据*/  data: {list: '',word: '',message:''  },  houduanButton1: function () {var that = this;wx.request({url: ':443/getUser',method: 'GET',header: {'content-type': 'application/json' // 默认值},success: function (res) {console.log(res.data)//打印到控制台var list = res.data.list;if (list == null) {var toastText = '数据获取失败';wx.showToast({title: toastText,icon: '',duration: 2000});} else {that.setData({list: list})}}})  }

接下来以搜索类型的请求为例:

wxml文件:

<input type="text" class="houduanTab_input" placeholder="请输入你要查询的内容" bindinput='houduanTab_input'></input>  <button bindtap='houduanButton2'>查询</button>  <view wx:if="{{message!=''}}">{{message}}  </view>

js文件:变量的定义见上一个js文件

//获取输入框的内容  houduanTab_input: function (e) {this.setData({word: e.detail.value})  },  // houduanButton2的网络请求  houduanButton2: function () {var that = this;wx.request({url: ':443/getWord',data:{word: that.data.word},method: 'GET',header: {'content-type': 'application/json' // 默认值},success: function (res) {console.log(res.data)//打印到控制台var message = res.data.message;if (message == null) {var toastText = '数据获取失败';wx.showToast({title: toastText,icon: '',duration: 2000});} else {that.setData({message: message})}}})  }

至此已经完成了简易的微信小程序端与java后端进行通信。

现在可以在启动后端项目在微信开发工具上进行测试。

演示效果:



微信图片_20220630212825.gif




所以至此已经完成了小程序的前后端通信。

六、ps申请

其实也不算什么申请,在购买域名之后可以申请免费的ssl证书,在前面的配置文件application.properties中有证书的配置,将证书的pfx文件直接添加到后端项目下即可。

七、购买服务器部署后端api代码

对于springboot项目,本人建议打jar,直接在服务器上部署即可,在服务器上只需要安装对应版本的jdk即可。项目部署命令:

我购买的是阿里云的轻量级应用服务器部署的。比较划算吧。

运行命令: nohup java -jar helloworld.jar &

nohup的意思不挂服务器,常驻的意思,除非云服务器重启,那就没法了;最后一个&表示执行命令后要生成日志文件nohup.out,当然还可以使用java -jar helloworld.jar。


源码资料获取方式:关注小编+转发文章+私信【 0630】免费获取!!!!


Linux篇

1、 绝对路径用什么符号表示?当前目录、上层目录用什么表示?
主目录用什么表示? 切换目录用什么命令?
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd

2、 怎么查看当前进程?怎么执行退出?怎么查看当前路径?

查看当前进程: ps
ps -l 列出与本次登录有关的进程信息; ps -aux 查询内存中进程信息; ps -aux | grep * 查询
*进程的详细信息; top 查看内存中进程的动态信息; kill -9 pid 杀死进程。

3、查看文件有哪些命令

vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数

4、列举几个常用的Linux命令

列出文件列表:ls【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail,例如: tail -n 1000:显示最后1000行
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd创建空文件:touch
编辑器:vim vi

5、你平时是怎么查看日志的?

Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍几种常用的方法。
1、tail
最常用的一种查看方式
命令格式: tail[必要参数][选择参数][文件]-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 -
q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间
隔休眠S秒
例如:

tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)
一般还会配合着grep搜索用,例如 :
tail -fn 1000 test.log | grep '关键字'
如果一次性查询的数据量太大,可以进行翻页查看,例如:
tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
2、head
跟tail是相反的head是看前多少行日志
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
head其他参数参考tail
3、cat
cat 是由第一行到最后一行连续显示在屏幕上
一次显示整个文件 :


cat > filename
将几个文件合并为一个文件:

cat -n textfile1 > textfile2
清空一个日志文件:
$cat : >textfile2
注意:> 意思是创建,>>是追加。千万不要弄混了。
cat其他参数参考tail
4、more
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中
的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下
翻滚一行),空格(向下滚动一屏),Q(退出命令)。more命令从前向后读取文件,因此在启动
时就加载整个文件。
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示
的该文件的百分比:–More–(XX%)
more的语法:more 文件名

Enter 向下n行,需要定义,默认为1行
Ctrl f 向下滚动一屏
空格键 向下滚动一屏
Ctrl b 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
!命令 调用Shell,并执行命令
q退出more
5、sed
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询按照行号

sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
按照时间段
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
6、less
less命令在查询日志时,一般流程是这样的
less log.log
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213
按 n 向上查找关键字
shift+n 反向查找关键字
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查
看之前不会加载整个文件。
less log2013.log 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令历史使用记录并通过less分页显示
less log2013.log log2014.log 浏览多个文件
常用命令参数:
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查
看之前不会加载整个文件。

less log2013.log 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令使用记录并通过less分页显示
less log2013.log log2014.log 浏览多个文件
常用命令参数:
-b <缓冲区大小> 设置缓冲区的大小
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号


-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
h 显示帮助界面
q 退出less 命令
一般本人查日志配合应用的其他命令
history // 所有的历史记录
history | grep XXX // 历史记录中包含某些指令的记录
history | more // 分页查看记录
history -c // 清空所有的历史记录
!! 重复执行上一个命令
查询出来记录后选中 : !323

源码资料获取方式:关注小编+转发文章+私信【 0630】免费获取!!!!

如果你长期从事信息管理系统的独立开发,可能会发现客户的需求大多以增删改查为主,除了数据表的内容不同以外其他基本相同,将共性代码封装到框架能减少重复劳动;浏览器端代码和服务器端代码交织,调式不便,效率低下,通过将浏览器端的常用组件封装为JAVA对象,做到大部份需求仅仅靠写JAVA代码就能满足,降低调式难度,提高开发效率。

一、独立开发者建议不采用流行框架的原因

JAVA程序开发框架可以降低JAVA程序开发难度,这是程序开发界的共识,因此,Hibernate、Strus、Spring等各种框架十分流行。但这些框架主要是为分工很细的大公司考虑,在灵活性、可扩展性方面考虑很多,对独立开发者来说太繁杂了。我用JAVA编写程序已有15年,但仍然没有使用这些框架,原因之一就是这些框架绕的弯太多,让人觉得头晕。

Hibernate是一个开源的JAVA数据库访问框架,其操作一个数据表的步骤分为5步:一是建立与数据库表中一行数据对应的JAVA Bean形式的持久化对象类(称为POJO);二是建立描述持久化对象和数据表之间映射关系的Hibernate配置文件;三是设置Hibernate本身的配置文件;四是根据配置文件初始化Hibernate会话的工厂类,进而得到Hibernate会话对象;五是由Hibernate会话对象得到持久化对象(对应于数据库表中的行),通过操作这些持久化对象,就可以操作数据库表中的数据。可见Hibernate真的很麻烦。

Strus也是这样,其xml配置文件绕来绕去,难以维护。Spring的依赖注入,面向切面的编程,给人的感觉就象是恨不能将所有的JAVA类及其构造参数都移到xml配置文件中去。这些框架给我的感觉是功能强大但有90%的功能我用不上,配置灵活但内容全放在和JAVA程序风格大不相同的xml文件中。Java程序员为什么怕写JAVA程序而热衷于写xml,真是令人费解。

二、独立开发者如何建立自己的JAVA开发框架

由于数据分析应用的业务需求主要是数据处理和数据查询,因此我建立框架的目标是:尽可能只利用JAVA语言和SQL语言,直接实现全部数据处理业务需求。让Html、CSS、JavaScript、Xml、JSP等这些普遍认为开发JAVA应用程序必须掌握的技术离我们远些吧!虽然开发一个实用稳定的JAVA三层结构应用程序开发框架是一项难度较大的工作,但我通过先建立一个最简单的应用框架开始,在实际项目开发应用中发现大多数项目都要用到的功能,就逐步往框架中添加,保证了该框架的对象和对象的方法都是实际开发工作中最需要的,从而保证了框架的实用性;框架在长期的项目应用中,得到持续不断的改进,保证了框架的可靠性。

该框架的设计思路是:利用JAVA面向对象的特性,将Html、CSS、JavaScript、Xml等封装在框架层,由对JAVA程序开发技术了解深入的程序员进行开发完善,力求“辛苦我一个,幸福千万人”,使应用层程序员从纷繁复杂的技术细节中解脱出来,专注于用JAVA语言来实现业务需求,再加上现在流行的JAVA集成开发环境“自动代码完成“、“代码重构”等高级功能的辅助,使编写应用程序成为轻松愉快的工作。

在该框架设计过程中,为尽可能简化应用层难度,采取了一系列措施:一是以数据为中心,能从数据库获取的信息,就不需要应用层程序员来设置。一些以JAVA对象为中心的框架,往往在xml配置文件中来设置主键、非空字段、字段类型等信息,增加了程序设计难度。而本框架直接从数据库中获得数据表的主键、非空字段、字段类型等信息,自动将其用于数据输入校验,不需要写任何额外的程序。二是尽量减少完成一个功能所涉及的文件数量,尽可能做到一个应用功能对应一个JAVA程序文件。目前多数流行框架使用MVC设计模式,控制器一般由框架提供,完成一个数据应用功能还需要用JAVA做模型、用JSP作视图、如果采用O/R映射还需要建立一个JAVA实体Bean来放数据。而本框架一般在一个JAVA程序文件中完成这些工作,在单个业务需求变化时,涉及修改的程序代码集中在一个文件中,减轻了维护工作量。三是URL映射简单直接。流行框架通常存在一个配置URL和实际JAVA类对应关系的xml映射文件,浏览器请求的URL经过xml映射文件重定向后,变得对应关系不清晰了,在发现网页显示错误时,不易直接找出引发错误的JAVA程序文件。本框架URL直接和JAVA程序文件一一对应,如:在浏览器地址栏输入“:8080/test/com.coyizz.pfc.userBean.class”后回车,如果网页出现错误,就立即知道是test应用项目下的JAVA类com.coyizz.pfc.userBean存在问题。


三、JAVA开发框架主要类介绍

(一)数据访问对象Sql和DataStore

数据应用的关键就是要查询和处理数据,直接用JAVA的JDBC数据访问接口提供的功能主要适用于底层数据操作,在应用层使用存在使用麻烦、中文字符集不能很好的处理等问题,业界推崇的DAO模式,要求应用程序应将数据库访问操作封装在一个对象中。我将常用的数据库访问分为两类:一类不涉及数据的输入和显示,相关功能封装到Sql对象中;另一类涉及数据的输入和显示,相关功能封装到DataStore对象中。DataStore对象内部也需要用Sql对象进行基本的数据处理。

Sql对象实现了Sql查询脚本的解析,以便在基本sql查询脚本基础上添加扩展查询条件,并解决了数据库访问的字符集问题。

例A:已知用户编码查询用户名称

String s = Sql.getResultString(“select name from usera where code = ‘0001’”, 1, AppConnItems.getConn());

例B:查询全部用户名称

Sql sql = new Sql(“select name from usera”);

Resultset rs = sql.getResultSet();

例C:在上例基础上限制只能查询单位代码(dwdm)为‘1010’的用户名称

sql.setLimitWhere(“swdm=’1010’”);

rs = sql.getResultSet();

DataStore仿照PowerBuilder中的DataStore对象开发了Java版的DataStore对象,实现了复杂的数据访问功能,和Hibernet等数据持久化方案比,不需要实体Bean来容纳数据,减少了JAVA类的的数量,增加了数据处理的灵活性;不需要配置xml文件,降低了开发难度,提高工作效率。能生成网页显示表格或表单所需的Html对象。除能方便地处理数字、字符、编码字段外,还能处理文件、图片、超链接等字段。

例A:查询全部用户名称和编码

DataStore ds = DataStore(“dsMain”, “select name,code,fj from usera”, AppConnItems.getConn());

ds.retrieve();

例B:取得结查询结果的第一行数据中的编码数据或原文数据

String s = ds.getItemStr(1, “code”); // 取得编码

s = ds.getItemStr(1, “code”); // 取得原文

例C:将查询结果第三行数据中的“名称”(name)字段设置“张三”并保存到数据库

ds.setItem(3, “name”, “张三”);

ds.update();

例D:取得查询结果的显示用Html表格对象

HtmlTable ht = ds.getHtmlTable();

例E:取得查询结果的行数

int rowCnt = ds.getRowCount();

例F:取得查询结果的列数

int colCnt = ds.getColCount();

例G:删除第1行

ds.deleteRow(1);

例H:在最后添加1行:

ds.insertRow(0);

例I:设置附件列(fj)为文件附件, 存放在Web应用目录的xxFj子目录下,附件最大限制为20M。

ds.setColIsFileLink("fj", "xxFj", "", 20000000, true);

例J:设置附件列(fj)为图片, 存放在Web应用目录的img子目录下,扩展名只能为jpg或gif,附件最大限制为4M,图片宽度为200,高不设置。

ds.setColIsImg(“fj”, “img”, “gif,jpg”, 4000000, 200, 0, true);

从以上例子来看,该数据访问对象和PowerBuilder的DataStore十分相象,使原来的PowerBuilder程序员能较快地转向JAVA程序的开发上来。

DataStore对象还有其他一些强大的功能:比如dsAdd方法可完成两个DataStore中的数据迭加或追加,setZzjgLimit方法可根据用户权限限制数据操作范围,通过DataStore的一些构造方法,可实现多个DataStore数据的内联或外联。SetHoldData方法可使数据在网页之间保持,validCheck方法可根据数据表的相关信息,对当前存放在DataStore对象中的数据,进行数据类型、非空、主键重复等有效性检查。GetSelectedRowsDs可取得用户在浏览器上选中的数据行,GetDeletedRowsDs可取得用户在浏览器上删除的数据行。Sort可对DataStore对象中的数据按多列进行排序,fillSumRow可对指定多列数据求和。总之,DataStore对象涵盖了数据应用开发中所需的大多数功能。

(二) HzBean对象

HzBean对象是响应浏览器请求,显示网页的主要对象。每个需要在网页上显示的对象,都要直接或间接地继承该对象,并且对象名一定要以“Bean”结尾。在浏览器端要调用HzBean对象的后代,可以十分直观地在Web应用URL后跟java类名即可,如“:8080/test/com.coyizz.pfc.userBean.class”,显示网页和Java类文件对应关系清晰,方便查找程序问题,不像Strus那样,经过xml配置文件的映射后,往往不知道网页是那个Java类文件产生的了。

HzBean对象封装了常用的数据处理事件,比如onShowMain是显示主界面,onShoForm是显示表单,onSave是保存表格数据,onSubmit是提交数据等;HzBean还实现了权限控制功能:比如用setCanReadOnly(true)方法就可封锁全部添加、修改、删除数据请求,即使用户直接通过url调用也无法改动数据。

HzBean可完成网页间的数据的保持。通过getHoldParmStr(“name”)可以在取得url传递过来的name参数同时,将其保存到session变量中。

HzBean实现了多个数据访问对象的事务处理,每个Bean对象中使用的数据库连接全部记录在一个connItems对象中,在HzBean处理数据更新的方法后,若捕获到SQL异常,则在每个数据连接上进行回滚。

(三) SimpleTableDsBean和ComplexTableDsBean对象

这两个对象利用HzBean、DataStore对象,实现了数据表的增加、删除、修改、输入数据有效性检查、通用查询和排序、数据表可选列打印输出功能。其中SimpleTableDsBean一般用于记录数在50条以下的数据表列数较少的数据表,而ComplexTableDsBean记录数在50条以上列数较多的数据表。ComplexTableDsBean还适合处理比较复杂的数据,如关联数据列等。在最简情况下,只要以下几行代码,就可实现数据表的增、删、改、查、打:

public class TestBean extends ComplexTableDsBean {

public void onInit() {

regDs(new DataStore("dsMain", "select * from usera", getConnItem()));

}

}

在浏览器的地址栏输入“:8080/zhfz/com.coyizz.test.TestBean.calss”就可运行程序。

(四) Html*对象

在需要控制浏览器端的显示细节时,大多数框架是用DrameWave等工具来设计jsp网页来满足需求,但jsp文件通常是一个Html、jsp标签、java代码混合的大杂绘,无法通过编译器进行语法检查,因此,本框架用以Html开始命名的一批对象封装了常用的Html元素,如HtmlA封装了“A”标签,HtmlTable封装了“TABLE”标签。这些对象都继承于HtmlElement,都用add方法来在本标欠内添加其它Html标签。比如要发送给浏览器内容为:“<b ></b>”则对应的Java代码为“new HtmlB()”,如果要发送给浏览器内容为:“<b ><font>Hellow</font></b>”则对应的Java代码为“new HtmlB().add(new HtmlFont(“Hellow”))”。一般情况下Html元素对象是属于底层对象,只在需要精细控制显示细节时才使用。这些Html元素要显示在网页上的方法是在HzBean后代对象中的onShowMain方法或onShowForm等方法中,用addSheet, addBar等方法显示。这样一来,用强类型的Java对象代替了弱类型的Html标签,一切都在Java的控制之中。

  当然,有时某些复杂的表格或只有Front和DrameWave才能写好的页面,可先用Front和DrameWave写好纯静态的Html页面,并在需要插入动态数据的地方预留标签,在HzBean的后代对象中,用getHtmlFromFile方法将文件读到内存后,将动态数据插入其中,完成静态页面和动态数据的组合。

(五) DbConns对象

提供了通过JDBC驱动或应用服务器数据库连接池连接数据库的方法,目前可连接Tomcat数据连接池、Oracle、Sybase Adaptive Server Anywhere、PostgreSQL数据库。

工具uni-app ★36.1k+ - 使用 Vue 语法开发小程序、H5、App的统一框架Taro ★30.6k+ - 使用 React 的方式开发小程序的框架,同时支持生成多端应用WePY ★21.7k+ - 支持组件化的小程序开发框架mpvue ★20.4k+ - 基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系chameleon ★8.6k+ - 一套代码运行多端,一端所见即多端所见kbone ★4.2k+ - Web 与小程序同构解决方案Remax ★4.2k+ - 使用真正的 React 构建小程序wept ★2.3k - 微信小程序实时运行环境wechat_web_devtools ★2.3k+ - Linux 下微信开发者工具wafer ★2.1k - 快速构建具备弹性能力的微信小程序MPX ★2.1k+ - 增强型小程序框架,深度性能优化,支持跨小程序平台开发,完全兼容原生小程序组件Labrador ★1.7k - 支持 ES6/7 的微信小程序组件化开发框架licia ★1.7k - 支持小程序的 JS 工具库megalo ★1.6k - 基于 Vue 的小程序开发框架CloudBase Framework ★1.1k - 腾讯云开发开源一键部署工具,支持部署小程序及云开发应用tina ★1k+ - 轻巧的渐进式微信小程序框架minapp ★800+ - TypeScript 版小程序开发框架(兼容原生小程序代码)Okam ★300+ - 使用类 Vue 方式开发小程序的渐进增强框架,支持生成微信/百度等主流平台的小程序xpmjs ★100+ - 微信小程序云端增强 SDKWeApp-Workflow ★100+ - 基于 Gulp 的微信小程序前端开发工作流gulp-wxa-copy-npm - 微信小程序 gulp 插件,解决 npm 包管理和 babel-runtimeweact - 用 JSX 快速开发小程序socket.io-mp-client - 微信小程序 socket.io 客户端@wxa - AOP小程序开发框架postcss-pxtorpx-pro - postcss px 转 rpx 插件px2rpx - Px 转 Rpx 在线工具wxml-parser - JavaScript WXML parserweappx - 基于 redux 的数据层管理框架weapp-start - 基于插件机制的开发脚手架,改善原生小程序开发体验Egret Wing - 支持微信小程序实时预览的 IDEwxapp-graphql - 小程序 GraphQL 客户端gulp-wxapp-boilerplate - 小程序+小程序云 Gulp 开发脚手架,支持云函数 mockwenaox - 小程序数据层管理 ,轻量性能好,支持中间件authing-wxapp-sdk - 身份认证 for 微信小程序weapp-eslint-boilerplate - 微信小程序 Eslint 通用模板文件,节省自己配置的时间Anka - 渐进式小程序开发工具集,提供通用的开发函数库及组件WeAppBunXin - 微信小程序开发之影分身术,一套代码生成多个小程序miniprogram-build - 小程序命令行编译工具(支持typescript,原生npm,资源文件压缩...)wcc.js - wcc.js 是wxml文件和wxs文件编译器的nodejs实现wcsc.js - wcsc.js 是wxss文件编译器的nodejs实现weapp-gulp - Gulp高效构建微信小程序,让开发变得更简单cheers-mp - Almost零配置微信原生小程序脚手架,vue-cli般的体验~(ts、less、原生npm、云OSS、CI自动发布体验版)we-mobx - 在微信小程序中使用 MobXweconsole - 功能全面、界面与体验对标 Chrome devtools 的可定制化的小程序开发调试面板wechat-web-devtools-linux - Linux 下微信开发者工具

↑ 返回目录 ↑

插件wxapp.vim - 提供微信小程序开发全方位支持的 vim 插件weapp-snippet-for-sublime-text-2-3 - 为 sublime text 2&3 准备的微信小程序 snippet(停更)Matchmaker - IntelliJ IDEA 插件,注入方法wechatCode-complete - webstorm 插件(代码提示)wxapp - sublime pluginminapp - vscode 插件(支持 原生/mpvue/wepy 框架)vscode 插件(代码提示)vscode-live-sass-compiler - vscode插件根据.scss文件自动生成wxss文件WePY Plugin For IntelliJ Platform - 让PhpStorm/WebStorm全面支持WePY的开发,包括API(原生/WePY)和组件(官方/自定义)的自动完成/错误检查/高亮/不依赖Vue/...wxml - vscode插件--微信小程序格式化以及高亮组件(高度自定义)wux-weapp-snippets - Wux Weapp Snippets for VS Code.wux-weapp-atom-snippets - Wux Weapp Snippets for Atom.wux-weapp-sublime-snippets - Wux Weapp Snippets Plugin for Sublime Text 2/3.

↑ 返回目录 ↑

组件weui-wxss ★12.4K+ - 同微信原生视觉体验一致的基础样式库vant-weapp ★12.3k+ - 高颜值、好用、易扩展的微信小程序 UI 库wxParse ★7.2K+ - 微信小程序富文本解析自定义组件,支持 HTML 及 markdown 解析mp-html ★1.4K+ - 小程序富文本组件,支持渲染和编辑 html,支持在微信、QQ、百度、支付宝、头条和 uni-app 平台使用iview-weapp ★5.5k+ - 一套高质量的微信小程序 UI 组件库wux-weapp ★4.2k+ - 一套组件化、可复用、易扩展的微信小程序 UI 组件库wx-charts ★4.1k+ - 微信小程序图表 charts 组件Lin UI ★2k+ - 一套设计优良、基于原生微信小程序语法的 UI 组件库wemark ★1.100+ - 微信小程序 Markdown 渲染库image-cropper ★900+ - 微信小程序图片裁剪组件wxapp-img-loader ★400+ - 微信小程序图片预加载组件we-cropper ★400+ - 微信小程序图片裁剪工具wxa-plugin-canvas ★300+ - 微信小程序朋友圈海报生成组件WeZRender ★300+ - 微信小程序 Canvas 开发wx_calendar ★300+ - 小程序日历wxapp ★300+ - 微信小程序组件Wa-UI ★200+ - 针对微信小程序整合的一套 UI 库wxSearch ★200+ - 微信小程序优雅的搜索框wx-scrollable-tab-view ★200+ - 小程序可滑动得 tab-viewwetoast ★100+ - 微信小程序 toast 增强插件wx-alphabetical-listview ★100+ - 微信小程序带字母滑动的 listviewwx-drawer ★100+ - 小程序模仿 QQ6.0 侧滑菜单wxapp-charts ★100+ - 微信小程序图表 charts 组件chartjs-wechat-mini-app ★100+ - chartjs 微信小程序适配wx-promise-request ★100+ - 微信小程序请求队列管理库we-swiper ★100+ - 微信小程序触摸内容滑动解决方案wxDraw ★100+ - 微信小程序 2D 动画库citySelect ★100+ ★42 - 微信小程序城市选择器weapp-cookie ★100+ - 一行代码让微信小程序支持 cookie WeiXinProject - 微信小程序列表上拉刷新和上拉加载wepy-com-charts - 微信小程序 wepy 图表控件wxapp-lock - 微信小程序手势解锁mini-gesture-lock - 微信小程序手势解锁(无Android Canvas卡顿问题)weapp.socket.io - socket.io 风格的 websocket 类库weapp-polyfill - [w3c 标准 API polyfillwx-promise-pro ★666+ - 微信小程序 Promise 库wxMD5 - 微信小程序 MD5 库wxBase64 - 微信小程序base64 库xing-weapp-component - 微信小程序基础组件扩展wx-statuslayout - 小程序页面状态切换组件minapp-api-promise - 微信小程序所有 API promise 化minapp-slider-left - 微信小程序左划删除组件mp_canvas_drawer - canvas绘制图片助手,一个json就制作分享朋友圈图片xing-weapp-editor - 小程序图文编辑组件cue - A WX Compontent Toolswuss-weapp - 一款高质量,组件齐全,高自定义的微信小程序UI组件库miniprogram-datepicker - 小程序日期选择器(支持农历)wx-api-promisify - 优雅地将微信小程序API Promise化anka-brush - 一款为简化小程序里canvas画图操作而创建的工具库anka-tracker - 小程序打点库,用于统计用户行为数据mpvue-calendar - 微信小程序/浏览器端的日历组件mpvue-calendar;基于mpvue平台 支持农历、按周切换、可自定义。mp-swipe-card - 小程序卡片滑动组件,类似探探的效果,貌似现在只支持左右滑动weapp.request - 为微信小程序提供的网络请求组件,是 wx.request 的扩展,基于 Promise API,添加缓存控制。miniprogram-network - Redefine the Network API of MiniProgram(小程序网络请求库)we-validator - 简单灵活的表单验证插件,支持小程序、浏览器以及Nodejs端使用。wx-pulltorefresh-view - 简单灵活的下拉上拉刷新组件,支持微信小程序sol-weapp ★300+ -微信小程序营销组件:红包雨、大转盘等营销组件weapp-input-frame - 微信小程序验证码输入框组件we-debug - 一款灵活、易于拓展的微信小程序调试工具weapp-qrcode - 微信小程序生成二维码工具cheers-mp-router - 精巧强大的小程序原生路由wx-updata - 微信小程序官方 setData 替代品,只修改 data 中你希望修改的部分 ✈️three-platformize - 一个让 THREE 平台化的项目,已适配微信、淘宝、头条小程序