后台:gitee:https://gitee.com/zhangjiqun/background-development-demo.git
docway:http://www.docway.net/project/1ghALtt7cJt/1ghALw36HiK
目录
thymeleaf模板是在java中实现前端界面开发
vue实现前后端的分离
在idea查看数据库数据
安装EasyCode 插件
配置mapping扫描路径
注意mapping,xml 路径
设置数据库主键自增
设置ip地址和端口号
get和post的区别
get请求:信息在url中
post请求:信息不在url中
使用docway进行测试
vue与Element-Ui的关系
Element Ui 初始化
npm安装
在页面上引入 js 和 css 文件即可开始使用
通过 Element ui 官网进行效果查看和代码复制
实现主界面框架布局
stripe作用
index.html
分页效果
fastjsonlist转json
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.3</version>
</dependency>
@GetMapping("selectAllJson")
@CrossOrigin
public String selectAllJson() throws JSONException {
List<UserInfo> list=this.userInfoService.queryAllByLimit(1,100);
String str = JSON.toJSONString(list); // List转json
return str;
thymeleaf模板是在java中实现前端界面开发
vue实现前后端的分离
在idea查看数据库数据
安装EasyCode 插件
配置mapping扫描路径
注意mapping,xml 路径
设置数据库主键自增
设置ip地址和端口号
get和post的区别
Get是不安全的,因为在传输过程,数据被放在请求的URL中;
Post的所有操作对用户来说都是不可见的。
Get传送的数据量较小,这主要是因为受URL长度限制;
Post传送的数据量较大,一般被默认为不受限制。
Get限制Form表单的数据集的值必须为ASCII字符;
而Post支持整个ISO10646字符集。
Get执行效率却比Post方法好
Get是form提交的默认方法。
get请求:信息在url中
post请求:信息不在url中
使用docway进行测试
vue与Element-Ui的关系
1.Element-Ui是基于vue封装的组件库,简化了常用组件的封装,提高了重用性原则;
2. vue是一个渐进式框架,Element-Ui是组件库;
完成后即可安装element-ui,然后在index.js中引入全局注册即可,如下所示:
安装element-ui
cnpm install element-ui --save
index.js中引入全局注册
import ElementUi from 'elemet-ui'
import '@/theme-et/index.css'
Vue.use(ElementUi)
element-ui:官网 https://element.eleme.cn/#/zh-CN
Element Ui 初始化
npm i element-ui -S
npm安装
在页面上引入 js 和 css 文件即可开始使用
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
通过 Element ui 官网进行效果查看和代码复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<template>
<el-table
:data="tableData"
stripe
style="width: 100%">
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
</template>
</div>
</body>
</html>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
var Main = {
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
</script>
实现主界面框架布局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-container style="height: 100%; width: 100%; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu :default-openeds="['1', '3']">
<el-submenu index="1">
<template slot="title"><i class="el-icon-message"></i>导航一</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="1-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<template slot="title">选项4</template>
<el-menu-item index="1-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="2">
<template slot="title"><i class="el-icon-menu"></i>导航二</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="2-1">选项1</el-menu-item>
<el-menu-item index="2-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="2-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="2-4">
<template slot="title">选项4</template>
<el-menu-item index="2-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="3">
<template slot="title"><i class="el-icon-setting"></i>导航三</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="3-1">选项1</el-menu-item>
<el-menu-item index="3-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="3-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="3-4">
<template slot="title">选项4</template>
<el-menu-item index="3-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
</el-aside>
<el-container>
<el-header style="text-align: right; font-size: 12px">
<el-dropdown>
<i class="el-icon-setting" style="margin-right: 15px"></i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>查看</el-dropdown-item>
<el-dropdown-item>新增</el-dropdown-item>
<el-dropdown-item>删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span>王小虎</span>
</el-header>
<el-main>
<el-table :data="tableData">
<el-table-column prop="date" label="日期" width="140">
</el-table-column>
<el-table-column prop="name" label="姓名" width="120">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
</el-main>
</el-container>
</el-container>
</div>
</body>
</html>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
var Main = {
data() {
const item = {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
};
return {
tableData: Array(50).fill(item)
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
</script>
<style>
@import url("//unpkg.com/element-ui@2.15.3/lib/theme-chalk/index.css");
.el-header {
background-color: #B3C0D1;
color: #333;
line-height: 60px;
}
.el-aside {
color: #333;
}
</style>
stripe作用
index.html
<script>
// import VueResource from 'vue-resource'
// Vue.use(VueResource) ;
var Main = {
data() {
return {
tableData: [{
age: '2',
name: '王小虎',
id: '11'
}]
}
},
created() {
this.getData();
},
methods: {
getData() {
let that = this;
let url = "http://localhost:10000/userInfo/selectAll";
this.$http.get(url).then(res => {
let rs = JSON.parse(JSON.stringify(res.body));
console.log(rs);
that.tableData = rs;
})
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
</script>
分页效果
宝塔前后端搭建
前端:vue ,使用Element ui 控件
后端:使用spring boot mybatis。打包jar 上传服务器
数据库:mysql,navicate作用数据库表操作工具
先来个效果图吧;
最终网站
远程接口访问
本地接口访问
宝塔建网站数据库
上传jar 和vue 或者html界面
建立数据库
navicate 连接远程mysql
配置nginx
#user nobody;
worker_processes 3;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name ll;
charset utf-8;
location / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html
# root /www/wwwroot/tm.bt.cn;
root /www/wwwroot/zjq.com;
# root /www/wwwroot;
# root /www/wwwroot/192.144.212.56;
# root /www/server/tomcat9/demo/src/main/resources/templates;
index index.html index.htm;
}
location = /project {
root /www/wwwroot/192.144.212.56;
index index.html index.htm;
}
}
}
站点启用tomcat,没有安装需要安装
配置 spring boot jar包
宝塔查询数据库登录
mysql -umiaosha -p123456
注意没有空格
宝塔查询数据库查询
注意:数据库命.表明
idea 打jar包失败
就是数据库名称 ip配置的问题
Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plu
就是数据库名称 ip配置的问题