Dao.java
上传用户:njlgjx
上传日期:2022-08-07
资源大小:9105k
文件大小:7k
源码类别:

图形图象

开发平台:

Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package com.mwq.map.dao;
  6. import java.util.Iterator;
  7. import java.util.Vector;
  8. /**
  9.  *
  10.  * @author Administrator
  11.  */
  12. public class Dao extends BaseDao {
  13.     private static final Dao dao;
  14.     
  15.     static {
  16.         dao = new Dao();
  17.     }
  18.     public static Dao getInstance() {
  19.         return dao;
  20.     }
  21.     //tb_map
  22.     public String getMapName() {
  23.         return selectOnlyValue("select name from tb_map where id=1").toString();
  24.     }
  25.     public boolean setMapName(String name) {
  26.         return longHaul("update tb_map set name='" + name + "' where id=1");
  27.     }
  28.     //tb_sort
  29.     public Vector selectChildSortByFatherId(int sortId) {
  30.         return selectSomeNote("select * from tb_sort where father_id=" + sortId);
  31.     }
  32.     public int insertSort(int fatherId, String name) {
  33.         Object maxId = super.selectOnlyValue("select max(id) from tb_sort");
  34.         int id = (maxId == null ? 1 : (Integer) maxId + 1);
  35.         super.longHaul("insert into tb_sort(id,father_id,name) values(" + id + "," + fatherId + ",'" + name + "')");
  36.         return id;
  37.     }
  38.     public boolean updateSortNameById(int id, String newName) {
  39.         return super.longHaul("update tb_sort set name='" + newName + "' where id=" + id);
  40.     }
  41.     public boolean deleteSortById(int id) {
  42.         StringBuffer sb = new StringBuffer(" ( ");
  43.         sb.append(id);
  44.         Iterator it = selectAllChildSortId(id + "").iterator();
  45.         while (it.hasNext()) {
  46.             sb.append(", ");
  47.             sb.append(it.next());
  48.         }
  49.         sb.append(" )");
  50.         super.longHaul("delete from tb_sign where sort_id in" + sb.toString());
  51.         return super.longHaul("delete from tb_sort where id in" + sb.toString());
  52.     }
  53.     //tb_sign
  54.     public Vector selectClickSign(int x, int y) {
  55.         return super.selectOnlyNote("select * from tb_sign where " + x + " between x-5 and x+5 and " + y + " between y-5 and y+5");
  56.     }
  57.     public Vector selectShowSigns(int x, int y, int width, int height, float scale) {
  58.         int w = width / 2;
  59.         int h = height / 2;
  60.         int minX = x - w;
  61.         int maxX = x + w;
  62.         int minY = y - h;
  63.         int maxY = y + h;
  64.         return super.selectSomeNote("select * from tb_sign where x between " + minX + " and " + maxX + " and y between " + minY + " and " + maxY + " and scale <=" + scale);
  65.     }
  66.     public Vector<Vector> selectSimpleSign(String keyword) {
  67.         return super.selectSomeNote("select * from tb_sign where title like '%" + keyword + "%' or remark like '%" + keyword + "%'");
  68.     }
  69.     public Vector<Vector> selectAppointSign(String keyword, String keywordArea, String date, String compare, String sort, String sortArea) {
  70.         String sql = selectAdvancedSign(keyword, keywordArea, sort, sortArea);
  71.         if (date.length() > 0) {
  72.             if (sql.length() > 27) {
  73.                 sql += " and";
  74.             }
  75.             if (compare.equals("大于")) {
  76.                 sql += " date > '" + date + "'";
  77.             } else if (compare.equals("小于")) {
  78.                 sql += " date < '" + date + "'";
  79.             } else {//等于
  80.                 sql += " date = '" + date + "'";
  81.             }
  82.         }
  83.         return super.selectSomeNote(sql);
  84.     }
  85.     public Vector<Vector> selectSpaceSign(String keyword, String keywordArea, String startDate, String endDate, String sort, String sortArea) {
  86.         String sql = selectAdvancedSign(keyword, keywordArea, sort, sortArea);
  87.         if (startDate.length() > 0) {
  88.             if (sql.length() > 27) {
  89.                 sql += " and";
  90.             }
  91.             sql += " date >= '" + startDate + "' and date <= '" + endDate + "'";
  92.         }
  93.         return super.selectSomeNote(sql);
  94.     }
  95.     private String selectAdvancedSign(String keyword, String keywordArea, String sort, String sortArea) {
  96.         String sql = "select * from tb_sign where";
  97.         boolean isAdd = false;
  98.         if (keyword.length() > 0) {
  99.             isAdd = true;
  100.             keyword = keyword.replace(' ', '%');
  101.             if (keywordArea.equals("名称")) {
  102.                 sql += " title like '%" + keyword + "%'";
  103.             } else if (keywordArea.equals("说明")) {
  104.                 sql += " remark like '%" + keyword + "%'";
  105.             } else {//全部
  106.                 sql += " ( title like '%" + keyword + "%' or remark like '%" + keyword + "%' )";
  107.             }
  108.         }
  109.         if (sort != null) {
  110.             if (sortArea.equals("仅当前类")) {
  111.                 if (isAdd) {
  112.                     sql += " and";
  113.                 } else {
  114.                     isAdd = true;
  115.                 }
  116.                 sql += " sort_id = " + sort;
  117.             } else {//包含子类
  118.                 if (isAdd) {
  119.                     sql += " and";
  120.                 } else {
  121.                     isAdd = true;
  122.                 }
  123.                 sql += " sort_id in ( " + sort;
  124.                 Iterator it = selectAllChildSortId(sort).iterator();
  125.                 while (it.hasNext()) {
  126.                     sql += ", " + it.next();
  127.                 }
  128.                 sql += " )";
  129.             }
  130.         }
  131.         return sql;
  132.     }
  133.     public Vector selectAllChildSortId(String fatherId) {
  134.         Vector ids = new Vector(super.selectSomeValue("select id from tb_sort where father_id=" + fatherId));
  135.         int index = 0;
  136.         while (ids.size() != index) {
  137.             int count = ids.size();
  138.             for (int i = index; i < count; i++) {
  139.                 ids.addAll(super.selectSomeValue("select id from tb_sort where father_id=" + ids.get(i)));
  140.             }
  141.             index = count;
  142.         }
  143.         return ids;
  144.     }
  145.     public int insertSign(String sort_id, int x, int y, String title, int show, float scale, String date, String remark) {
  146.         Object maxId = super.selectOnlyValue("select max(id) from tb_sign");
  147.         int id = (maxId == null ? 1 : (Integer) maxId + 1);
  148.         super.longHaul("insert into tb_sign values(" + id + "," + sort_id + "," + x + "," + y + ",'" + title + "'," + show + "," + scale + ",'" + date + "','" + remark + "')");
  149.         return id;
  150.     }
  151.     public void updateSign(int x, int y, String title, String sortId, int show, String date, String remark) {
  152.         super.longHaul("update tb_sign set title='" + title + "', sort_id=" + sortId + ", show=" + show + ", remark='" + remark + "' where " + x + " between x-5 and x+5 and " + y + " between y-5 and y+5");
  153.     }
  154.     public boolean deleteClickSign(int x, int y) {
  155.         return super.longHaul("delete from tb_sign where " + x + " between x-5 and x+5 and " + y + " between y-5 and y+5");
  156.     }
  157.     //v_sign_sort 
  158.     public Vector selectClickSignV(int x, int y) {
  159.         return super.selectOnlyNote("select * from v_sign_sort where " + x + " between x-5 and x+5 and " + y + " between y-5 and y+5");
  160.     }
  161.     void a() {
  162.         Vector signs = super.selectSomeNote("select * from tb_sign");
  163.         for (int i = 0; i < signs.size(); i++) {
  164.             Vector sign = (Vector) signs.get(i);
  165.             for (int j = 0; j < sign.size(); j++) {
  166.                 System.out.println(sign.get(j));
  167.             }
  168.             System.out.println("--------------------------");
  169.         }
  170.     }
  171.     public static void main(String[] a) {
  172.         new Dao().a();
  173.     }
  174. }