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>... ...
随机推荐
- pandas.DataFrame.sample随机抽样
https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398 ...
- Filebeat的使用
前言 logstash本身就可以具有文件数据采集的功能了,为什么还需要在前面加一层filebeat?理由如下:logstash是使用Java编写,插件是使用JRuby编写,对机器的资源要求会比较高,在 ...
- react问题You must install peer dependencies yourself.
npm WARN react-native@0.46.4 requires a peer of react@16.0.0-alpha.12 but none is installed. You mus ...
- vue 动态路由跳转在新窗口打开
let routeUrl =this.$router.resolve({path: '/home'}) window.open(routeUrl.href, '_blank');
- Html表格和表头文字不换行
[本文出自天外归云的博客园] 希望表头中的文字和表格中的文字不换行,只需要在th和td标签加上: nowrap="nowrap"
- Win10如何开启蓝屏记录?Win10开启蓝屏信息记录的方法
转载:http://www.xitongzhijia.net/xtjc/20170127/91010.html 蓝屏,是电脑最常见的故障,一般出现蓝屏时都会显示详细的蓝屏错误信息,方便用户排查故障.最 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器和EasyDSS云平台异同
背景分析 不同于EasyDSS流媒体服务器与EasyDSS流媒体解决方案(EasyDSS流媒体解决方案就是通过EasyDSS流媒体服务器完善业务层研发而来),EasyDSS流媒体服务器和EasyDSS ...
- dotnet core 项目脚手架这种小事嘛...
dotnet core脚手架批处理.bat @echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end s ...
- 深入nginx之《获取用户的真实IP》
获取用户的真实IP Nginx会将客户端的IP信息存放在$remote_addr变量里,但这并不意味着它就是客户端的IP,生产环境往往会充满各种代理,让IP的来龙去脉变得扑朔迷离. 目前互联网公司基本 ...
- npm 的一些命令
查看项目中是否安装某个插件 npm [name] -v [name] 为要查询的插件的名字,如果已经安装就会显示该插件的版本号 npm list 查看项目中所有已安装的插件