一、数据库sql操作:

1、三表查询的时候,最后的条件由于当前字段必须判断是属于哪个表,所以需要注明根据哪个表中的字段进行判断:

  并且再在后面加上limit的时候,需要注意先进行添加,避免系统不能识别具体几个参数:

// 根据条件在员工信息表中搜索
public List<Message> getMessageByCondition(Condition condition, int index, Integer currentCount)
throws SQLException {
QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
String sql = "select * from person join position ON person.ppid=position.ppid JOIN department ON person.pdid=department.pdid where 1=1";
// 需要将结果存在集合中(因数组长度不可变) DISTINCT去重
ArrayList<Object> arr = new ArrayList<Object>();
// trim()是去掉首尾空格
if (condition.getPpid() != null && condition.getPpid() != "") {
// sql += " and pposition like ?"; && condition.getPteam() != ""
// arr.add("%" + condition.getPposition() + "%");
sql += " and person.Ppid=?";
arr.add(condition.getPpid());
}
if (condition.getPdid() != null && condition.getPdid() != "") {
sql += " and person.Pdid=?";
arr.add(condition.getPdid());
}
if (condition.getPteam() != null && condition.getPteam() != "") {
sql += " and pteam=?";
arr.add(condition.getPteam());
}
sql += " limit ?,?";
arr.add(index);
arr.add(currentCount);
List<Message> list = qr.query(sql, new BeanListHandler<Message>(Message.class), arr.toArray());
return list;
}

2、五表查询的时候直接查询就行:

        String sql = "SELECT * FROM information JOIN person ON person.pname=information.pname JOIN human ON human.username = information.username JOIN `position` ON person.ppid=position.ppid JOIN department ON person.pdid=department.pdid ";

3、将1表中根据条件查询出来的结果放置到2表中的某个字段上:

String sql = "INSERT INTO `human` (username) SELECT(SELECT `username` FROM information WHERE istate ='通过')";

4、根据在1表中查询出来的结果删除其在2表中的数据:

String sql = "delete from information where pname =(select pname from person where pid=?)";

二、JavaBean类:

因为减少数据的冗余,需要将表的一些数据进行再分表,这样要是想查看所有的信息的话,需要进行多表的查询--要建个多个数据的类:

1、可以使用继承的形式:--这样子类可以获得其和父类的所有的数据;(根据子类输出结果时只显示子类有的属性的数据,但是其可以调用父类的属性)

package domain;
//个人全部信息--继承登录信息页面
public class PersonalMessage extends Information{
private String pwd;
private Integer pid;
private String pposition;
private String pdepartment;
private Integer pteam;
private Integer ppid;
private Integer pdid;
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public String getPposition() {
return pposition;
}
public void setPposition(String pposition) {
this.pposition = pposition;
}
public String getPdepartment() {
return pdepartment;
}
public void setPdepartment(String pdepartment) {
this.pdepartment = pdepartment;
}
public Integer getPteam() {
return pteam;
}
public void setPteam(Integer pteam) {
this.pteam = pteam;
}
public Integer getPpid() {
return ppid;
}
public void setPpid(Integer ppid) {
this.ppid = ppid;
}
public Integer getPdid() {
return pdid;
}
public void setPdid(Integer pdid) {
this.pdid = pdid;
}
@Override
public String toString() {
return "PersonalMessage [pwd=" + pwd + ", pid=" + pid + ", pposition=" + pposition + ", pdepartment="
+ pdepartment + ", pteam=" + pteam + ", ppid=" + ppid + ", pdid=" + pdid + "]";
} }

2、其实也可以就建一个大类,需要调用什么数据的时候,就是用哪个数据:

//请假类
public class Leave implements Serializable {
private Integer lid;
private Integer pid;
private String pname;
private Double lday;
private String dateStart;
private String dateWork;
private String lreason;
private String leaveType;
private String lstate1;
private String lstate2; // 额外的属性---连表查询用
private Integer pdid;
private Integer pteam;
private Integer ppid;
private String pdepartment;
private String pposition; public Integer getLid() {
return lid;
}
public void setLid(Integer lid) {
this.lid = lid;

3、上面代码中的

implements Serializable

是实现序列化的,无大碍。

三、其他的小细节:

1、修改:

查询jsp内点击某行的修改按钮(带着本行的ID)-->根据本行的ID查询本行所有的数据Servlet-->请求转发 进入修改jsp页面(可以设置某些信息不能更改:disabled="true")--->修改Servlet--->重定向  查询所有的信息Servlet ---> 查询总的jsp页面

2、form表单中action指向的地址是其submit按钮所提交的地址;

3、当页面点击未出现预期的效果,首先检查点击事件的地址,然后去XML里查看Servlet是否存在;

  若是没有数据,查看是否将数据已取到了,是否将数据存到域中,JSP页面中的键值是否正确;

  <查看数据的话,在java内直接system.out.println(数据),在jsp内直接${数据}>

四、使用layui:

1、当使用其表单时:

需要进行渲染:

layui.use('form', function () {
var form = layui.form;
form.render();
});

2、弹出层:(需要使用自己的js?)

/* 使用弹出层 */
layui.use('layer', function() {
var layer = layui.layer;
});
//第一种:主动加载jquery模块(跟自己引入的冲突会导致弹出框消失后,内容还存在在页面内)
layui.use(['jquery', 'layer'], function(){
var $ = layui.$ //重点处
,layer = layui.layer;
//后面就跟你平时使用jQuery一样
/*设置点击出现弹出框 */
/* $("#btn").click(function() {
layer.open({
title:"友情提示",
type : 1,
closeBtn : false,
shadeClose : true,
content : $("#info"),
cancel: function(){//关闭按钮的回调函数
location.reload();//关闭时刷新页面 (防止弹出框内容再次显示在页面内)
}
});
}) */

3、使用iframe的切换时:点击时添加上SRC地址;

<!-- 引入iframe -->
<iframe class="personList" style="width: 100%; height: 100%; margin-top:0"
frameborder="0" src=""></iframe> /* 点击员工信息表按钮 */
$(".personalMessagebtn").on(
"click",
function() {
$(".personList").attr("src",
"${pageContext.request.contextPath}/PersonalMessageServlet");
$(".layui-body").css("background", "none");
});
/*点击员工岗位信息表按钮 */
$(".ConditionPersonbtn").on("click", function() {
$(".layui-body").css("background", "none");
$(".personList").attr("src",
"${pageContext.request.contextPath}/ConditionPersonServlet",
"display", "block")
});

4、其他详见:https://www.cnblogs.com/30go/p/11088549.html(侵删)

Java项目部分总结的更多相关文章

  1. eclipse — 导入android项目后识别成java项目的问题及解决

    最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...

  2. owner:轻松管理java项目配置

    前段时间,一同事说在 github 上“活捉了”一个很有趣的开源项目,它是一个超轻量级的 jar 包,能够帮助你在 java 项目中摒弃样板式的 properties 配置代码,让你轻松自如地管理和使 ...

  3. Scala:Java 项目中混入scala代码

    Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...

  4. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  5. Java开发程序,使用编辑器编写创建Java项目、类

    打开Eclipse 出现界面 工作空间的路径可以选择一个大空间的磁盘存放,点击确定: 创建:程序左上角-文件-新建-JAVA项目 输入项目名(项目名不能为中文),点击完成: 在   包资源管理器中点击 ...

  6. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...

  7. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  8. 像Maven一样构建java项目的目录,更好的管理java工程的源码

    都知道maven具有管理Java或者Javaweb的功能.我个人尤其看中的是其代码层次的分离.不同的代码在不同的文件夹下.这是在eclipse新建一个普通的工程无法实现的.而如果用maven实现有时候 ...

  9. eclipse中 将java项目转换为web项目

    来自:http://jadethao.iteye.com/blog/1331308 eclipse中 将java项目转换为web项目 1.找到项目工作空间目录,打开.project文件,并修改文件,  ...

  10. 在Eclipse中,如何把一个java项目变成web项目

    经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目.解决步骤:1.进入项目目录,可看到.project文件,打开.2.找到<natures>... ...

随机推荐

  1. 微信小程序图片宽度100%,高度自适应

    实现图片自适应,按照一般情况只需设置: img { width: 100%; height: auto; } 但是微信小程序里是特例,需要image标签上设置属性mode=widthFix,就是hei ...

  2. Swift5升级遇到的AVCapturexxxDelegate的坑,写法换了

    升级到swift5之后,遇到关于AVCapture的两个代理都失效了, 找了一圈,发现原因是代理方法写法变了,如果不替换,代理事件就收不到了 解决方法: 替换新写法就可以了 我这边只举例我遇到的两个例 ...

  3. zp本地包

    https://pan.baidu.com/s/13670pdPNvG_o1coYFnovXA 密码: 3pk3

  4. paxos(mysql)

    https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf https://raft.github.io/raft.pdf 如何浅显易懂 ...

  5. Hadoop学习笔记——HDFS

    1.查看hdfs文件的block信息 不正常的文件 hdfs fsck /logs/xxx/xxxx.gz.gz -files -blocks -locations Connecting to nam ...

  6. vue-cli3项目关闭烦人的代码检测

    参考博客:https://blog.csdn.net/e1172090224/article/details/99636767 vue.config.js module.exports = { lin ...

  7. ThinkPHP3开发模式,控制器操作,配置文件,框架语法

    ThinkPHP的开发模式 tp框架有两种使用模式:开发模式(调试模式),一种是生产模式(运行模式) define('APP_DEBUG', true);  //调试模式 define('APP_DE ...

  8. PowerDNS + PowerDNS-Admin

    一.基础配置 1.1 环境说明 Centos 7.5.1804 PDNS MariaDB 1.2 关闭防火墙和 selinux setenforce sed -i 's/SELINUX=enforci ...

  9. ChecklistForTest

    相关字段内容较长时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 数据量较多时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 各字段为空校验(都为空,部分为空,都不为空)是否正 ...

  10. 安装cnpm出现问题

    安装cnpm: 命令行中输入   npm install -g cnpm --registry=http://registry.npm.taobao.org 报:cnpm不是内部命令 解决方法:设置环 ...