一、数据库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. Could not create connection to database server. Attempted reconnect 3 times. Giving up.

    报出这个错误,可能原因: 1.检查MySQL数据库服务是否正常(包含检查服务名和密码),如果不正常,修复至正常为止: 2.maven工程中导入的mysql的jar版本和你的MySQL版本不相符,必须相 ...

  2. redis创建集群至少需要几个节点?至少需要几个master节点?

    描述: 这也算个思考吧,通过redis-trib.rb可创建redis集群,然后通过--replicas后面接的数字,表示1个主节点对应几个从节点,那么我就做了如下的测试,想要达到的效果就是有6个节点 ...

  3. 关于Oracle to_date函数的高级用法

    由于种种原因,在我们的系统中,账套期间(PERIOD_NAME)由于格式设置的原因,数据库层存储的格式如下 Mar-19,而不是常规的2019-03. 我们无法更改数据库,涉及到的点太多. 但是期间数 ...

  4. asp.net 的log4net的helper类

    using log4net; using System; using System.Diagnostics; namespace MxWeiXinPF.Common.log { public stat ...

  5. Java13新特性 -- switch表达式

    引入了yield语句,用于返回值: 和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块. @Test public void testSwitch ...

  6. 【NPDP笔记】第二章 组合管理

    2.1 什么是产品组合 Product Portfolio 什么是组合管理,讲述的是完成正确的项目, 五大目标 财务稳健,财务目标 管道平衡,资源需求与可用资源之间的平衡 战略协同,与经营战略 组织战 ...

  7. SimpleDataFormat 线程不安全解决

    SimpleDataFormat 是我们常用的时间转换工具,我再spark中使用sdf对时间戳进行转换,发现转化出的时间有异常,原来sdf是线程不安全的, 改用joda time,错误消失,样例如下 ...

  8. Git 查看更改

    当向仓库中添加文件或删除文件后,可能需要查看更改. 查看更改有多种方式. 1.查看状态 # git status 结果 1 2 # 位于分支 master 无文件要提交,干净的工作区 2.查看日志 # ...

  9. LeetCode176——第二高的薪水

    题目描述 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+ | Id | Salary | +----+--------+ | 1 ...

  10. PHP防止被重复请求接口的方法(网页端签名验证的方法)

    PHP防止被重复请求接口的方法(网页端签名验证的方法) 可以采取签名验证的方式来 解决这个问题 1 time和随机数都是PHP生成的显示在前端 2 前端生成sign 3 进行每次请求的sign计数 这 ...