Java项目部分总结

1、数据库sql操做:css

一、三表查询的时候,最后的条件因为当前字段必须判断是属于哪一个表,因此须要注明根据哪一个表中的字段进行判断:html

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

// 根据条件在员工信息表中搜索
    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;
    }

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

        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 ";

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

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

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

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

2、JavaBean类:数组

由于减小数据的冗余,须要将表的一些数据进行再分表,这样要是想查看全部的信息的话,须要进行多表的查询--要建个多个数据的类:dom

一、可使用继承的形式:--这样子类能够得到其和父类的全部的数据;(根据子类输出结果时只显示子类有的属性的数据,可是其能够调用父类的属性)jsp

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 + "]";
    }
    
}

二、其实也能够就建一个大类,须要调用什么数据的时候,就是用哪一个数据:ide

//请假类
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;

三、上面代码中的

implements Serializable

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

3、其余的小细节:

一、修改:

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

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

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

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

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

4、使用layui:

一、当使用其表单时:

须要进行渲染:

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

二、弹出层:(须要使用本身的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();//关闭时刷新页面 (防止弹出框内容再次显示在页面内)
                }            
            }); 
        }) */

 三、使用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")
});

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

相关文章
相关标签/搜索