forked from p59qpvlxt/tongxun
Compare commits
31 Commits
Author | SHA1 | Date |
---|---|---|
贺志豪 | 375439d2c1 | 11 months ago |
贺志豪 | 7c55d86ea4 | 11 months ago |
贺志豪 | 09a9bbefa3 | 11 months ago |
贺志豪 | 0ed90e3e06 | 11 months ago |
贺志豪 | a448bdbe7a | 11 months ago |
贺志豪 | 3996dc3992 | 12 months ago |
贺志豪 | b691364c86 | 12 months ago |
贺志豪 | ccbc14f0d3 | 1 year ago |
liujun | c3c8389041 | 1 year ago |
柊叶 | 289271cdb8 | 1 year ago |
柊叶 | 16c1094222 | 1 year ago |
李平科 | 72b1af3373 | 1 year ago |
李平科 | ce1ae244b6 | 1 year ago |
柊叶 | 0d47ccc0a5 | 1 year ago |
李平科 | a177c79f67 | 1 year ago |
guyuming | 410356d8ac | 1 year ago |
zhuhao | 36cbd7fa39 | 1 year ago |
柊叶 | e19cd67b79 | 1 year ago |
p59qpvlxt | 09788760ce | 1 year ago |
p59qpvlxt | 7d05178fe9 | 1 year ago |
p59qpvlxt | 7e3f154158 | 1 year ago |
p59qpvlxt | e349049451 | 1 year ago |
p59qpvlxt | 6c8979a8e2 | 1 year ago |
李平科 | cecaa44373 | 1 year ago |
贺志豪 | 04c2f91688 | 1 year ago |
guyuming | 11f9f38f78 | 1 year ago |
柊叶 | f607150570 | 1 year ago |
zhuhao | 1df9091936 | 1 year ago |
YangHong | 5f64500d62 | 1 year ago |
liujun | 9f8bcffb02 | 1 year ago |
Qiang-志 | 4ce305a938 | 1 year ago |
Before Width: | Height: | Size: 99 KiB |
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
This is 404 page
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,272 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>通讯录登入界面</title>
|
||||
</head>
|
||||
<style>
|
||||
*{
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
body{
|
||||
display:flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border:1px solide transparent;
|
||||
background-color:ivory;
|
||||
}
|
||||
|
||||
#account{
|
||||
display:inline-block;
|
||||
width:250px;
|
||||
height:75px;
|
||||
border:1px solid transparent;
|
||||
margin-top:80px;
|
||||
}
|
||||
#account input{
|
||||
height:25px;
|
||||
}
|
||||
#passwd{
|
||||
display:inline-block;
|
||||
width:250px;
|
||||
height:75px;
|
||||
border:1px solid transparent;
|
||||
}
|
||||
#passwd input{
|
||||
height:25px;
|
||||
}
|
||||
input {
|
||||
text-indent: 3em;
|
||||
border:0.3px solid rgb(177, 161, 161);
|
||||
border-radius: 5px;
|
||||
box-shadow: 0.5px 0.5px 0.5px 0.05px rgb(247, 194, 227) inset;
|
||||
text-align: justify;
|
||||
}
|
||||
input:focus{
|
||||
outline:none;
|
||||
}
|
||||
#head{
|
||||
text-align: center;
|
||||
margin-top:50px;
|
||||
font-size:5ch;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
|
||||
}
|
||||
div i{
|
||||
color:rgb(151, 235, 227);
|
||||
}
|
||||
|
||||
#login{
|
||||
width:350px;
|
||||
height:400px;
|
||||
border:black solid 1px;
|
||||
border-radius:3%;
|
||||
background-color: rgb(255, 255, 255);
|
||||
box-shadow: 1px 1px 3px 2px rgb(247, 194, 227);
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
transition:1s;
|
||||
position: absolute;
|
||||
transform:translateX(100px);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
|
||||
#button{
|
||||
border: 1px solid rgb(223, 254, 252) ;
|
||||
background-color: rgb(223, 254, 252);
|
||||
height:35px;
|
||||
width: 75px;
|
||||
border-radius: 15%;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#context{
|
||||
width: 250px;
|
||||
height: 400px;
|
||||
border: 1px solid black;
|
||||
box-sizing: border-box;
|
||||
background-color: rgb(255, 255, 255);
|
||||
box-shadow: 1px 1px 3px 2px rgb(247, 194, 227);
|
||||
border-radius:3%;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
flex-direction:column;
|
||||
transition: 1s;
|
||||
position: absolute;
|
||||
transform:translateX(-200px);
|
||||
z-index: 2;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
#context p{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 250px;
|
||||
height: 75px;
|
||||
font-family: 'Courier New', Courier, monospace ;
|
||||
color: chartreuse;
|
||||
font-size: 2.5ch;
|
||||
}
|
||||
|
||||
#registration{
|
||||
width:350px;
|
||||
height:400px;
|
||||
border:black solid 1px;
|
||||
border-radius:3%;
|
||||
background-color: rgb(255, 255, 255);
|
||||
box-shadow: 1px 1px 3px 2px rgb(247, 194, 227);
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
transition:1s;
|
||||
position: absolute;
|
||||
transform:translateX(100px);
|
||||
}
|
||||
#box{
|
||||
width: 1000px;
|
||||
height: 500px;
|
||||
background-color: ivory;
|
||||
margin-top: 5%;
|
||||
border: 1px solid transparent;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<body>
|
||||
|
||||
|
||||
<div id="box">
|
||||
<div id="context">
|
||||
<p></p>
|
||||
<p>注册</p>
|
||||
</div>
|
||||
<form id="login" th:action="@{/postProcessorLogin}" target="_self">
|
||||
<div id="head">
|
||||
<i>登录页面</i>
|
||||
</div>
|
||||
<div id="account">
|
||||
<i>账号 : </i>
|
||||
<input type="text" placeholder="请输入账号" name="account">
|
||||
</div>
|
||||
|
||||
<div id="passwd">
|
||||
<i>密码 : </i>
|
||||
<input type="password" placeholder="请输入密码" name="password">
|
||||
</div>
|
||||
|
||||
<div><button id="button">登入</button></div>
|
||||
</form>
|
||||
|
||||
<form id="registration" th:action="@{/postProcessorRegistration}" target="_self" >
|
||||
<div id="head">
|
||||
<i>注册页面</i>
|
||||
</div>
|
||||
<div id="account">
|
||||
<i>账号 : </i>
|
||||
<input type="text" placeholder="请输入账号" name="account">
|
||||
</div>
|
||||
|
||||
<div id="passwd">
|
||||
<i>密码 : </i>
|
||||
<input type="password" placeholder="请输入密码" name="password">
|
||||
</div>
|
||||
|
||||
<div><button id="button">注册</button></div>
|
||||
<form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script th:inline="javascript">
|
||||
// 这里就写js代码 在我们点击上面的注册按钮之后就会转到注册界面上面
|
||||
//注册完成之后就会显示 我们可以进行登录了,我们就在此点击登录按钮就可以了
|
||||
|
||||
|
||||
|
||||
var p = document.querySelector("#context p:nth-child(2)");
|
||||
p.addEventListener("click", function(){
|
||||
//我们可以通过判断当前的内容是什么来劲判断操作
|
||||
if( p.innerText === '注册'){
|
||||
//也就是是在我们点击了这个按钮之后我们就要将我们的登陆界面消掉
|
||||
//将我们的注册界面显示出来
|
||||
var login = document.querySelector("#login");
|
||||
login.style.opacity=0;
|
||||
login.zIndex='0';
|
||||
|
||||
var context = document.querySelector("#context");
|
||||
context.style.transform='translateX(200px)';
|
||||
p.innerText = '登入';
|
||||
|
||||
var registration = document.querySelector("#registration");
|
||||
registration.style.transform = 'translateX(-100px)';
|
||||
registration.style.zIndex = 1;
|
||||
registration.style.opacity = 1;
|
||||
}
|
||||
else if( p.innerText==='登入') {
|
||||
var registration = document.querySelector("#registration");
|
||||
registration.style.opacity = 0;
|
||||
registration.zIndex = '0';
|
||||
|
||||
var context = document.querySelector("#context");
|
||||
context.style.transform = 'translateX(-200px)';
|
||||
p.innerText = '注册';
|
||||
|
||||
var login = document.querySelector("#login");
|
||||
login.style.transform = 'translateX(100px)';
|
||||
login.style.zIndex = 1;
|
||||
login.style.opacity = 1;
|
||||
}
|
||||
//这个是将我们显示的 账号已有进行刷新的操作
|
||||
var secondP = document.querySelector("#context p:first-child");
|
||||
secondP.innerText = "";
|
||||
});
|
||||
|
||||
//这个是判断当前是否已经发有了账号
|
||||
//账号 在数据库里已经有了的不能使用相同的账号
|
||||
var isHaveAccount = [[${isHaveAccount}]];
|
||||
if(isHaveAccount != null){
|
||||
if(isHaveAccount === "当前账号已有"){
|
||||
p.innerText = '注册';
|
||||
|
||||
console.log("没有账号")
|
||||
var login = document.querySelector("#login");
|
||||
login.style.opacity=0;
|
||||
login.zIndex='0';
|
||||
|
||||
|
||||
var context = document.querySelector("#context");
|
||||
context.style.transform='translateX(200px)';
|
||||
p.innerText = '登入';
|
||||
|
||||
var registration = document.querySelector("#registration");
|
||||
registration.style.transform = 'translateX(-100px)';
|
||||
registration.style.zIndex = 1;
|
||||
registration.style.opacity = 1;
|
||||
//要输出已有
|
||||
var secondP = document.querySelector("#context p:first-child");
|
||||
secondP.innerText = isHaveAccount;
|
||||
secondP.style.color="red";
|
||||
|
||||
}else if(isHaveAccount ===''){
|
||||
console.log("没有账号")
|
||||
}
|
||||
console.log("还没有置为null " + isHaveAccount);
|
||||
isHaveAccount=null;
|
||||
console.log("值为null " + isHaveAccount);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
package com.example.webproject;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
|
||||
public class ServletInitializer extends SpringBootServletInitializer {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(WebProjectApplication.class);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.example.webproject;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class WebProjectApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(WebProjectApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.example.webproject.com.Pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class account {
|
||||
private String txl_account;
|
||||
private String txl_password;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "account{" +
|
||||
"txl_account='" + txl_account + '\'' +
|
||||
", txl_password='" + txl_password + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.example.webproject.com.Mapper;
|
||||
|
||||
import com.example.webproject.com.Pojo.account;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface account_operator {
|
||||
//查出所有的记录
|
||||
// @Select("select * from account_table")
|
||||
public List<account> findAll();
|
||||
|
||||
// @Select("select * from account_table where txl_account=#{account}")
|
||||
public account findOne( @Param("txl_account") String txl_account);
|
||||
|
||||
//新增加一条记录
|
||||
// @Insert("insert into account_table values(txl_account=#{account},txl_password=#{password})")
|
||||
public Integer insertOne(@Param("account") account account);
|
||||
// //删除一条记录
|
||||
//// @Delete("delete from account_table where txl_account=#{account}")
|
||||
public Integer deleteOne(String txl_account);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.example.webproject.com.Mapper.account_operator">
|
||||
<!-- @Select("select * from account_table")-->
|
||||
<!-- public List<account> findAll();-->
|
||||
<parameterMap id="param_account" type="com.example.webproject.com.Pojo.account"></parameterMap>
|
||||
<resultMap id="result_account" type="com.example.webproject.com.Pojo.account"></resultMap>
|
||||
<select id="findAll" resultMap="result_account">
|
||||
select * from account_table
|
||||
</select>
|
||||
|
||||
<!-- @Select("select * from account_table where txl_account=#{account}")-->
|
||||
<!-- public account findOne(@Param("account")String account);-->
|
||||
<select id="findOne" parameterType="String" resultMap="result_account">
|
||||
select * from account_table where txl_account=#{txl_account}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- @Insert("insert into account_table values(txl_account=#{account},txl_password=#{password})")-->
|
||||
<!-- public Integer insertOne(@Param("account") account account);-->
|
||||
<insert id="insertOne" parameterMap="param_account">
|
||||
insert into account_table values( #{account.txl_account}, #{account.txl_password})
|
||||
</insert>
|
||||
<!-- @Delete("delete from account_table where txl_account=#{account}")-->
|
||||
<!-- public Integer deleteOne(@Param("account")String account);-->
|
||||
<delete id="deleteOne" parameterType="String">
|
||||
delete from account_table where txl_account=#{txl_account}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>添加联系人</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
border: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
section {
|
||||
border-radius: 15px;
|
||||
width: 560px;
|
||||
height: 700px;
|
||||
margin: 0 auto;
|
||||
background-image: url(../static/bg2.jpg);
|
||||
box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.xinxi {
|
||||
width: 560px;
|
||||
height: 400px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
tr td {
|
||||
height: 100px;
|
||||
text-align: center;
|
||||
line-height: 100px;
|
||||
}
|
||||
|
||||
.name,
|
||||
.php {
|
||||
width: 249px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.submit {
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
color: aqua;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.submit:hover {
|
||||
background-color: skyblue;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
line-height: 100px;
|
||||
}
|
||||
|
||||
footer a {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: aqua;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section class="add">
|
||||
<header class="title">
|
||||
<h1>添加联系人</h1>
|
||||
</header>
|
||||
<div class="xinxi">
|
||||
<form th:action="@{/add_user_data}" target="_self" >
|
||||
<table width="600px">
|
||||
<tr>
|
||||
<td><label for="m">添加的联系人姓名:</label></td>
|
||||
<td><input class="name" type="text" id="m" name="name" placeholder="请输入联系人姓名" required="required"></td>
|
||||
</tr>
|
||||
<!-- <tr>-->
|
||||
<!-- <td>性别:</td>-->
|
||||
<!-- <td><label for="nan">男</label><input type="radio" name="sex" id="nan"> -->
|
||||
<!-- <label for="nv">女</label><input type="radio" name="sex" id="nv">-->
|
||||
<!-- </td>-->
|
||||
<!-- </tr>-->
|
||||
<tr>
|
||||
<td><label for="php">电话号码:</label></td>
|
||||
<td><input class="php" type="password" id="php" name="contact_phone_number" placeholder="请输入电话号码" required="required">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><input class="submit" type="submit" value="确认添加" name="上传"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
<div id="message"><p></p></div>
|
||||
</div>
|
||||
<footer>
|
||||
<a th:href="@{/data}">返回联系人列表</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<script th:inline="javascript">
|
||||
var message = [[${message}]];
|
||||
if(message != null){
|
||||
var p = document.querySelector("p");
|
||||
p.innerText = message;
|
||||
p.style.color='red';
|
||||
console.log(message);
|
||||
}
|
||||
console.log("message");
|
||||
</script>
|
||||
|
||||
</html>
|
@ -0,0 +1,16 @@
|
||||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
context-path: /home
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://127.0.0.1:3306/student?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
|
||||
password: 123456
|
||||
username: root
|
||||
|
||||
|
||||
mybatis:
|
||||
mapper-locations: classpath:MyBatis/*.xml
|
||||
type-aliases-package: com.example.webproject.com.Pojo
|
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>查找联系人</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
border: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
section {
|
||||
border-radius: 15px;
|
||||
width: 560px;
|
||||
height: 700px;
|
||||
margin: 0 auto;
|
||||
background-image: url(../static/bg2.jpg);
|
||||
box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, .1);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 560px;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.search {
|
||||
position: relative;
|
||||
width: 560px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.sousuo {
|
||||
position: absolute;
|
||||
left: 100px;
|
||||
width: 246px;
|
||||
height: 40px;
|
||||
padding-left: 50px;
|
||||
|
||||
}
|
||||
|
||||
.search input[type=submit] {
|
||||
position: absolute;
|
||||
left: 346px;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.search input[type=submit]:hover {
|
||||
cursor: pointer;
|
||||
background-color: skyblue;
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
line-height: 100px;
|
||||
}
|
||||
|
||||
footer a {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: aqua;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section>
|
||||
<div class="title">
|
||||
<h1>删除联系人</h1>
|
||||
</div>
|
||||
<form th:action="@{/delete_user_data}" target="_self" >
|
||||
<div class="search">
|
||||
<input class="sousuo" type="search" name="name" placeholder="请输入要删除的联系人姓名" required="required">
|
||||
<input type="submit" value="确认删除">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div id="message"><p></p></div>
|
||||
<footer>
|
||||
<a th:href="@{/data}">返回联系人列表</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
<script th:inline="javascript">
|
||||
var message = [[${message}]];
|
||||
if(message != null){
|
||||
var p = document.querySelector("p");
|
||||
p.style.color='red';
|
||||
p.innerText = message;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
This is error page
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>查找联系人</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
border: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
section {
|
||||
border-radius: 15px;
|
||||
width: 560px;
|
||||
height: 700px;
|
||||
margin: 0 auto;
|
||||
background-image: url("bg2.jpg}");
|
||||
box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, .1);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 560px;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.search {
|
||||
position: relative;
|
||||
width: 560px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.sousuo {
|
||||
position: absolute;
|
||||
left: 100px;
|
||||
width: 246px;
|
||||
height: 40px;
|
||||
padding-left: 50px;
|
||||
|
||||
}
|
||||
|
||||
.search input[type=submit] {
|
||||
position: absolute;
|
||||
left: 346px;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.search input[type=submit]:hover {
|
||||
cursor: pointer;
|
||||
background-color: skyblue;
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
line-height: 100px;
|
||||
}
|
||||
|
||||
footer a {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 560px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: aqua;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section>
|
||||
<div class="title">
|
||||
<h1>查找联系人</h1>
|
||||
</div>
|
||||
<form th:action="@{/find_user_data}" target="_self" >
|
||||
<div class="search">
|
||||
<input class="sousuo" type="search" name="name" placeholder="请输入要查找的联系人姓名" required="required">
|
||||
<input type="submit" value="确认查找">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div id="message"><p></p></div>
|
||||
<footer>
|
||||
<a th:href="@{/data}">返回联系人列表</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
<script th:inline="javascript">
|
||||
var message = [[${message}]];
|
||||
if(message != null){
|
||||
var p = document.querySelector("p");
|
||||
p.innerText = message;
|
||||
p.style.color='red';
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Binary file not shown.
@ -0,0 +1,40 @@
|
||||
package com.example.webproject.com.Pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class user_data {
|
||||
private String txl_account;
|
||||
private String txl_name;
|
||||
private String txl_contact_phone_number;
|
||||
private String txl_email;
|
||||
private String txl_address;
|
||||
private String txl_social_media_account;
|
||||
private String txl_company_name;
|
||||
private String txl_position;
|
||||
private String txl_remarks;
|
||||
private String txl_birthday;
|
||||
private String txl_hobbies;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "user_data{" +
|
||||
"txl_account='" + txl_account + '\'' +
|
||||
", txl_name='" + txl_name + '\'' +
|
||||
", txl_contact_phone_number='" + txl_contact_phone_number + '\'' +
|
||||
", txl_email='" + txl_email + '\'' +
|
||||
", txl_address='" + txl_address + '\'' +
|
||||
", txl_social_media_account='" + txl_social_media_account + '\'' +
|
||||
", txl_company_name='" + txl_company_name + '\'' +
|
||||
", txl_position='" + txl_position + '\'' +
|
||||
", txl_remarks='" + txl_remarks + '\'' +
|
||||
", txl_birthday='" + txl_birthday + '\'' +
|
||||
", txl_hobbies='" + txl_hobbies + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.example.webproject.com.Mapper;
|
||||
|
||||
import com.example.webproject.com.Pojo.user_data;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface user_data_operator {
|
||||
// @Select("select * from user_data_table")
|
||||
public List<user_data> findAll();
|
||||
|
||||
public List<user_data> findOne(String txl_account);
|
||||
|
||||
public List<user_data> findOneByName(String txl_account,String txl_name);
|
||||
|
||||
public Integer deleteOne(String txl_account,String txl_name);
|
||||
|
||||
public Integer insertOne(String account,String name,String contact_phone_number);
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.example.webproject.com.Mapper.user_data_operator">
|
||||
<!-- // @Select("select * from user_data_table")-->
|
||||
<!-- public List<user_data> findAll();-->
|
||||
|
||||
<resultMap id="result_user_data" type="com.example.webproject.com.Pojo.user_data">
|
||||
</resultMap>
|
||||
<parameterMap id="param_user_data" type="com.example.webproject.com.Pojo.user_data">
|
||||
</parameterMap>
|
||||
|
||||
<select id="findAll" resultMap="result_user_data">
|
||||
select * from user_data_table
|
||||
</select>
|
||||
|
||||
|
||||
<select id="findOne" resultMap="result_user_data" parameterType="string">
|
||||
select * from user_data_table where txl_account=#{txl_account}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="findOneByName" resultMap="result_user_data" parameterType="string">
|
||||
select * from user_data_table where txl_account=#{txl_account} and txl_name=#{txl_name}
|
||||
</select>
|
||||
|
||||
<delete id="deleteOne" parameterType="string" >
|
||||
delete from user_data_table where txl_account=#{txl_account} and txl_name=#{txl_name}
|
||||
</delete>
|
||||
|
||||
<insert id="insertOne" parameterType="string">
|
||||
insert into user_data_table values(#{account},#{name},#{contact_phone_number},'','','','','','','','')
|
||||
</insert>
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in new issue