建立连接

  1. package org.lq.ssm.gp.controller;
  2.  
  3. import com.esri.sde.sdk.client.SeConnection;
  4. import com.esri.sde.sdk.client.SeException;
  5.  
  6. public class SDEDBManager {
  7.  
  8. private static String server = ""; //SDE ip地址
  9. private static String instance = ""; //ArcSDE服务器端口号
  10. private static String database = ""; //数据库名
  11. private static String username = ""; //数据库账户
  12. private static String password = ""; //数据库密码
  13. /**
  14. * 建立SDE连接
  15. * @date 2017-4-13
  16. * @return
  17. */
  18. public static SeConnection getConn() {
  19. SeConnection conn = null;
  20. if (conn == null) {
  21. try {
  22. conn = new SeConnection(server, instance, database, username, password);
  23. if(conn!=null){
  24. System.out.println("连接SDE成功!");
  25. }
  26. } catch (SeException ex) {
  27. ex.printStackTrace();
  28. }
  29. }
  30. return conn;
  31. }
  32.  
  33. }

建立与数据库的连接

  1. package org.lq.ssm.gp.controller;
  2.  
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.util.Properties;
  7.  
  8. public class DBUtil {
  9.  
  10. //连接数据库的路径
  11. private static String url;
  12. //连接数据库的用户名
  13. private static String user;
  14. //连接数据库的密码
  15. private static String pwd;
  16. //用于管理不同线程所获取的连接
  17. private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
  18. //静态块
  19. static{
  20. try{
  21. //读取配置文件
  22. Properties prop = new Properties();
  23. InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("config.properties");
  24. prop.load(is);
  25. is.close();
  26.  
  27. //获取驱动
  28. String driver = prop.getProperty("jdbc.className");
  29.  
  30. System.out.println(driver);
  31. //获取地址
  32. url = prop.getProperty("jdbc.url");
  33.  
  34. //获取用户名
  35. user = prop.getProperty("jdbc.username");
  36.  
  37. //获取密码
  38. pwd = prop.getProperty("jdbc.password");
  39.  
  40. //注册驱动
  41. Class.forName(driver);
  42.  
  43. }catch(Exception e){
  44. e.printStackTrace();
  45. }
  46. }
  47.  
  48. /**
  49. * 获取一个连接
  50. * @return
  51. * @throws Exception
  52. */
  53. public static Connection getConnection() throws Exception{
  54. try{
  55. /*
  56. * 通过DriverManager创建一个数据库的连接
  57. * 并返回
  58. */
  59. Connection conn = DriverManager.getConnection(url,user,pwd);
  60. /*
  61. * ThreadLocal的set方法
  62. * 会将当前线程作为key,并将给定的值
  63. * 作为value存入内部的map中保存。
  64. */
  65. tl.set(conn);
  66. return conn;
  67. }catch(Exception e){
  68. e.printStackTrace();
  69. //通知调用者,创建连接出错
  70. throw e;
  71. }
  72. }
  73.  
  74. /**
  75. * 关闭给定的连接
  76. */
  77. public static void closeConnection(){
  78. try{
  79. Connection conn = tl.get();
  80. if(conn != null){
  81. conn.close();
  82. tl.remove();
  83. }
  84. }catch(Exception e){
  85. e.printStackTrace();
  86. }
  87. }
  88.  
  89. }

增加操作

  1. public int save(LandUser land) {
  2. SeConnection conn = SDEDBManager.getConn();
  3. if (conn != null) {
  4. try {
  5.  
  6. points="1 1,2 2,3 3";//点坐标的格式是这样的。数据是随便填的
  7.  
  8. SeInsert insert = new SeInsert(conn); // 使用当前的连接句柄Connection ,创建一个SeInsert对象.
  9. insert.intoTable("SDE.ztl", new String[]{"SHAPE","picid", "ybMarkNo", "ybgeometry", "dzbjh", "userId",
  10. "userName", "userZjh", "userYhkh", "userKhh", "userMobile", "userQygs", "userMs",
  11. "landDkbh", "landName"});
  12.  
  13. insert.setWriteMode(true);// 开启buffer,设置SeInsert对象为可写模式
  14. SeLayer layer = new SeLayer(conn, "SDE.ztl", "SHAPE");
  15.  
  16. SeCoordinateReference cr = layer.getCoordRef(); // 获得图层空间参考
  17. SeRow row = insert.getRowToSet();// 获取SeInsert对象中将要添加的SeRow对象。
  18. SeShape shape = new SeShape(cr);
  19. shape.generateFromText("POLYGON(("+points+"))"); //增加面
  20. // shape.generateFromText("LINESTRING("+points+")"); //增加线
  21. row.setShape(0, shape);
  22. row.setNString(1, land.getPicid());
  23. row.setNString(2, land.getYb_MarkNo());
  24. row.setNString(3, land.getYb_geometry());
  25. row.setNString(4, land.getDzbjh());
  26. row.setNString(5, land.getUserId());
  27. row.setNString(6, land.getUserName());
  28. row.setNString(7, land.getUserZjh());
  29. row.setNString(8, land.getUserYhkh());
  30. row.setNString(9, land.getUserKhh());
  31. row.setNString(10, land.getUserMobile());
  32. row.setNString(11, land.getUserQygs());
  33. row.setNString(12, land.getUserMs());
  34. row.setNString(13, land.getLandDkbh());
  35. row.setNString(14, land.getLandName());
  36.  
  37. insert.execute();
  38. insert.flushBufferedWrites();
  39. insert.close();
  40. return 1;
  41. } catch (Exception e) {
  42. e.printStackTrace();
  43. return 0;
  44. } finally {
  45. try {
  46. conn.close();
  47. } catch (SeException e) {
  48. e.printStackTrace();
  49. }
  50. }
  51. }
  52. return 2;
  53. }

删除操作

  1. public static int delete(String id){
  2. try {
  3. Connection conn = DBUtil.getConnection();
  4. Statement state = conn.createStatement();
  5. String sql="delete from SDE.ztl where landDkbh='"+id+"'";
  6. // 执行Sql,得到结果集
  7. int flag = state.executeUpdate(sql);
  8. System.out.println("执行sql");
  9. state.close();
  10. DBUtil.closeConnection();
  11.  
  12. if(flag>0){
  13. return 1;
  14. }else{
  15. return 0;
  16. }
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. return 0;
  20. }
  21.  
  22. }

修改操作

  1. public static int update(String id){
  2. try {
  3. Connection conn = DBUtil.getConnection();
  4. Statement state = conn.createStatement();
  5. String sql="update SDE.ztl set " +
  6. "picid = '"+land.getPicid()+"',"+
  7. "ybMarkNo ='"+land.getYb_MarkNo()+"',"+
  8. "ybgeometry ='"+land.getYb_geometry()+"',"+
  9. "dzbjh ='"+land.getDzbjh()+"',"+
  10. "userName ='"+land.getUserName()+"',"+
  11. "userZjh ='"+land.getUserZjh()+"',"+
  12. "userYhkh ='"+land.getUserYhkh()+"',"+
  13. "userKhh ='"+land.getUserKhh()+"',"+
  14. "userMobile ='"+land.getUserMobile()+"',"+
  15. "userQygs ='"+land.getUserQygs()+"',"+
  16. "userMs ='"+land.getUserMs()+"',"+
  17. "landDkbh ='"+land.getLandDkbh()+"',"+
  18. "landName ='"+land.getLandName()+"'"+
  19. " where userId = '"+land.getUserId()+"'";
  20. // 执行Sql,得到结果集
  21. int flag = state.executeUpdate(sql);
  22. System.out.println("执行sql");
  23. state.close();
  24. DBUtil.closeConnection();
  25.  
  26. if(flag>0){
  27. return 1;
  28. }else{
  29. return 0;
  30. }
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. return 0;
  34. }
  35.  
  36. }

查询操作

  1. public static List<LandUser> selectAll(String sql){
  2.  
  3. List<LandUser> list = new ArrayList<LandUser>();
  4. try {
  5. Connection conn = DBUtil.getConnection();
  6. Statement state = conn.createStatement();
  7.  
  8. String sql="select picid,ybMarkNo,ybgeometry,dzbjh,userId," +
  9. "userName,userZjh,userYhkh,userKhh,userMobile,userQygs,userMs," +
  10. "landDkbh,landName from SDE.ztl" ;
  11. // 执行Sql,得到结果集
  12. ResultSet rs = state.executeQuery(sql);
  13. while (rs.next()) {
  14. LandUser land = new LandUser();
  15. land.setPicid(rs.getString("picid"));
  16. land.setYb_MarkNo(rs.getString("ybMarkNo"));
  17. land.setYb_geometry(rs.getString("ybgeometry"));
  18. land.setDzbjh(rs.getString("dzbjh"));
  19. land.setUserId(rs.getString("userId"));
  20. land.setUserName(rs.getString("userName"));
  21. land.setUserZjh(rs.getString("userZjh"));
  22. land.setUserYhkh(rs.getString("userYhkh"));
  23. land.setUserKhh(rs.getString("userKhh"));
  24. land.setUserMobile(rs.getString("userMobile"));
  25. land.setUserQygs(rs.getString("userQygs"));
  26. land.setUserMs(rs.getString("userMs"));
  27. land.setLandDkbh(rs.getString("landDkbh"));
  28. land.setLandName(rs.getString("landName"));
  29.  
  30. list.add(land);
  31. }
  32. rs.close();
  33. state.close();
  34. DBUtil.closeConnection();
  35. return list;
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. return list;
  39. }
  40.  
  41. }

ArcSDE学习笔记--------增、删、改、查操作的更多相关文章

  1. 怎样从C#中打开数据库并进行 增 删 改 查 操作

    首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  4. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  5. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

  9. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

随机推荐

  1. 「JavaSE 重新出发」02.01 基本数据类型

    基本数据类型 1. 整型 注意:Java 没有任何无符号(unsigned)形式的 int.long.short 或 byte 类型. 不同进制的表示形式: 十六进制数值有一个前缀0x或0X(如0xC ...

  2. Volatile variables

    Volatile variables apply another type of memory constraint to individual variables. The compiler oft ...

  3. centos7 jumpserver 部署和使用手册(二)

    前面已经介绍了jumpserver的部署,基于这篇部署文档,下面介绍下部署完成后的的功能使用: 一.系统设置 1.1根据提供的帐号密码(admin/admin)登录jumpserver 修改 url ...

  4. Python实现机器人语音聊天

    一.前言说明 1.功能简述 登录后进入聊天界面,如果服务器都在同一个地址,则都进入同一个房间 进入/离开/发消息同一房间用户都可以看到,输入“tuling”或“chatbot”可以切换为和Tuling ...

  5. 中国象棋程序的设计与实现(五)--回答CSDN读者的一些问题

    最近写了很多文章,同时,也上传了很多免积分的FansUnion原创的优质资源,有兴趣的同学可以看来我的CSDN博客瞧瞧 http://blog.csdn.net/FansUnion. 近期,收到了不少 ...

  6. Hellow BeiJing

    DAY1: (#^.^#),今天是9.23日,离出发去北京还有7天,好像一切还是正常的样子. 先发一张图,这就是我们机房的日常: 但是o( ̄ヘ ̄o#)我听着我耳边的cys童鞋的rap就感觉事情仿佛没辣 ...

  7. 即将到来的Autodesk 主要产品2015版 产品和API新功能在线培训(免费)

    一年一度的Autodesk主要产品和API在线培训课程在5月份即将開始.我们呈献给大家5个课程. 1. Revit 2015 产品新功能及API 概览 2. Vault 2015产品新功能及API 概 ...

  8. [ACM] HDU 1400 Mondriaan&#39;s Dream (状态压缩,长2宽1长方形铺满)

    Mondriaan's Dream Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  9. 由老同事学习SAP所想到的

    前段时间一位老同事在微信上跟我说他们公司正计划导SAP系统,但整个IT中心几乎无人使用过SAP,知道我在这行业干了多年了,所以想问我怎么开始学习.于是我约他今天出来聊聊,顺便把手里的SAP ECC E ...

  10. java关键字之transient

    转自:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizabl ...