1、小程序前端工具:微信开发者工具(主要完成小程序前端的开发,主要包括页面、按钮、事件等)
2、小程序使用vant组件,在美观的基础上极大的提高了开发的便意程度
3、小程序后台主要是java语言编写,通过servlet以及数据库mysql对小程序进行后台的相应管理(数据库可视化软件使用的是navicat)
1、首先,打开开发者工具,写一个按钮并绑定一个事件houduanRequest
2、在js文件中定义事件houduanRequest并对事件进行配置
//index.js
const app = getApp() //通过getApp获取全局对象,然后进行全局变量和全局方法的使用。
Page({
data: {
list:[],
goodsID:1,
username:'admin',
password:'123456'
}, //data主要是定义值
houduanRequest:function(){
var that = this;
wx.request({
url: 'http://localhost:8888/putong/test2',
data: {
GoodsID:
that.data.goodsID,
username: that.data.username,
password: that.data.password
},
method: 'GET',
header: {
'content-type': 'application/json' // 默认值
},
success: function (req) {
var list2= req.data;
if (list2 == null) {
wx.showToast({
title: 'ErrorMessage',
icon: 'false', //图标
duration: 1500 //提示的延迟的时间
})
}
else {
that.setData({
list: list2
})
}
}
})
},
onLoad: function() {
},
})
3、打开eclipse并新建工程(动态工程),主要使用的doGet方法进行值的传递
在src下建立新的package以及相应的servlet文件
新建一个DBTools包,并新建class文件tools 作为调用数据库的工具类
4、工具类代码(有些多余代码,没有删除,分享给大家,主要是数据库增删改查),配置时注意相应的DRIVER、URL、USER、PWD相应的修改。
package tools;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBTools {
privatestatic Connection conn=null; //数据库连接对象
private Statement stmt=null; //数据库语句对象
private ResultSet rs=null; //数据库结果集对象
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String
URL="jdbc:mysql://localhost:3306/ty45?characterEncoding=utf8&useSSL=true";
private
static final String USER="root";
private
static final String PWD="shxt";
private
static DBTools db=null;
//单例模式(保障内存中只有一个db对象存在)
public
static DBTools getDB() {
if(db
== null) {
db
= new DBTools();
}
return
db;
}
//构造方法
private
DBTools() {
//什么也不用写
}
//加载驱动,获得连接方法
public
static Connection getConn() {
try
{
Class.forName(DRIVER);
try
{
conn=DriverManager.getConnection(URL,
USER, PWD);
}
catch (SQLException e) {
e.printStackTrace();
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
return
conn;
}
//处理增删改操作的方法
public
int update(String sql) {
int
num=0;
conn=getConn();
try
{
stmt=conn.createStatement();
num=stmt.executeUpdate(sql);
}
catch (SQLException e) {
e.printStackTrace();
}
return
num;
}
//处理查询操作的方法
public
ResultSet query(String sql) {
conn=getConn();
try
{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch (SQLException e) {
e.printStackTrace();
}
return
rs;
}
//释放资源方法
public
void close() {
if(rs
!= null) {
try
{
rs.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt
!= null) {
try
{
stmt.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
if(conn
!= null) {
try
{
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
}
5、jar包的导入,主要应用到的jar包有:
数据库jar包网上就可下载。
6、tomcat服务器的配置:
下载tomcat并配置部署,具体百度就可,再次不做赘述。
7、小程序主要是通过API连接eclipse中的servlet然后调用数据库,并把数据库的表中的数据显示在开发者平台中,实现小程序前后端的互连。
Servlet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
/* 设置响应头允许ajax跨域访问 */
response.setHeader("Access-Control-Allow-Origin", "*");
/* 星号表示所有的异域请求都可以接受, */
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
//获取微信小程序get的参数值并打印
String username = request.getParameter("username");
String password = request.getParameter("password");
String GoodsID = request.getParameter("GoodsID");
System.out.println("username="+username+" ,password="+password);
System.out.println("GoodsID="+GoodsID);
String sql="SELECT id,stuname,stusex,stuage FROM
student ";
DBTools db=DBTools.getDB();
ResultSet rs=db.query(sql);
try {
Writer out = response.getWriter();
out.write(a(rs));
out.flush();
} catch (Exception e) {
// TODO: handle exception
}
db.close();
}
把resultset结果集转换成json文件并回传给小程序,我试验了很多方法,最后确认了这个函数:
public
String a(ResultSet rs) throws SQLException {
// ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colnum = rsmd.getColumnCount();
String val = "";
String colName = "";
JSONArray jArr = new JSONArray();
while(rs.next()) {
for(int i = 1; i<= colnum; i++) {
JSONObject jobj = new JSONObject();
colName = rsmd.getColumnLabel(i);
if(1==i) {
val = new Integer(rs.getInt(colName)).toString();
}else {
val = rs.getString(colName);
}
try {
jobj.put(colName, val);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jArr.add(jobj);
}
}
return
jArr.toString();
}
函数的使用会伴随着很多jar包的调用,通过不断尝试,纠正bug,最终确定了使用resultset结果集转换json文件的必备六个jar包,只要导入就可以使用:
使用这些jar包便不用其他的json相关包,可以有效避免相关错误,相关的很多错误都是因为包的原因,最主要的就是包的冲突问题,使用这六个jar包,可以有效避免相关错误(ps:放在web-inf目录的lib文件夹下,并buind
path 添加到tomcat中)
8、打开navicat并选择事先准备的表(前边的sql语句中的表就是我们要调用的数据库表,下边是结果)
只调用三个字段:
尝试在.wxss中对显示的样式布局进行配置,但是时间匆忙,没有修改完善。
第一次发文章,希望大家以后多多支持,如果过段时间可以发网盘,我把那六个jar包发给大家,如果有急需的也可以戳我。