Java项目部分总结
一、数据库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项目部分总结的更多相关文章
- eclipse — 导入android项目后识别成java项目的问题及解决
最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...
- owner:轻松管理java项目配置
前段时间,一同事说在 github 上“活捉了”一个很有趣的开源项目,它是一个超轻量级的 jar 包,能够帮助你在 java 项目中摒弃样板式的 properties 配置代码,让你轻松自如地管理和使 ...
- Scala:Java 项目中混入scala代码
Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...
- 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行
一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...
- Java开发程序,使用编辑器编写创建Java项目、类
打开Eclipse 出现界面 工作空间的路径可以选择一个大空间的磁盘存放,点击确定: 创建:程序左上角-文件-新建-JAVA项目 输入项目名(项目名不能为中文),点击完成: 在 包资源管理器中点击 ...
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...
- 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. ...
- 像Maven一样构建java项目的目录,更好的管理java工程的源码
都知道maven具有管理Java或者Javaweb的功能.我个人尤其看中的是其代码层次的分离.不同的代码在不同的文件夹下.这是在eclipse新建一个普通的工程无法实现的.而如果用maven实现有时候 ...
- eclipse中 将java项目转换为web项目
来自:http://jadethao.iteye.com/blog/1331308 eclipse中 将java项目转换为web项目 1.找到项目工作空间目录,打开.project文件,并修改文件, ...
- 在Eclipse中,如何把一个java项目变成web项目
经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目.解决步骤:1.进入项目目录,可看到.project文件,打开.2.找到<natures>... ...
随机推荐
- 【spring源码学习】spring的事务管理源码学习
一.抽象概念 1.事务管理器 接口:org.springframework.transaction.PlatformTransactionManager 实现类:org.springframework ...
- [清华集训2015]灯泡(浙江大学ZOJ 3203 Light Bulb)
Time Limit: 1 Second Memory Limit: 32768 KB Compared to wildleopard's wealthiness, his brother ...
- ANR日志分析
2018年06月27日 16:28:13 Hello__code 阅读数 3427更多 分类专栏: bug记录 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...
- 【Python】解析Python中的文件操作
目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语 ...
- 如何更换linux shell中所显示目录的颜色?
答: 往~/.bashrc中加入以下内容即可: LS_COLORS='no=00:fi=00:di=01;33;40:ln=01;36;40:' export LS_COLORS
- Google软件测试之道笔记与总结
[本文出自天外归云的博客园] 以下内容除了笔记还有总结,有个人理解的成分在内. 第一章笔记与总结 1. 开发人员也承担了质量的重任,质量从来就不仅仅是一些测试人员的问题.头衔有测试字样的人的任务是让那 ...
- android分渠道打包,监测日活量统计(基于友盟SDK)
客服说要看App日活,让加个统计功能. (我们技术部已经混到客服部都能直接提需求的地步) 首先接入友盟统计的SDK,在项目外层的build.gradle中添加依赖'https://dl.bintray ...
- Difference Between Accuracy and Precision
What Is the Difference Between Accuracy and Precision? https://www.thoughtco.com/difference-between- ...
- redis-cli中文乱码
在开发过程中,需要验证redis缓存中的数据,发现redis存储的中文全是乱码,因为默认情况下redis不转义中文.如果在平常开发中想要看到中文内容,可以在使用redis-cli 命令登陆redis服 ...
- Oracle树形结构查询(递归)
引用:https://blog.csdn.net/u012615705/article/details/78321022 文章转自上述地址,内部有稍许改动,如有需要请查看原文. oracle树状结构 ...