ArcSDE学习笔记--------增、删、改、查操作
建立连接
- package org.lq.ssm.gp.controller;
- import com.esri.sde.sdk.client.SeConnection;
- import com.esri.sde.sdk.client.SeException;
- public class SDEDBManager {
- private static String server = ""; //SDE ip地址
- private static String instance = ""; //ArcSDE服务器端口号
- private static String database = ""; //数据库名
- private static String username = ""; //数据库账户
- private static String password = ""; //数据库密码
- /**
- * 建立SDE连接
- * @date 2017-4-13
- * @return
- */
- public static SeConnection getConn() {
- SeConnection conn = null;
- if (conn == null) {
- try {
- conn = new SeConnection(server, instance, database, username, password);
- if(conn!=null){
- System.out.println("连接SDE成功!");
- }
- } catch (SeException ex) {
- ex.printStackTrace();
- }
- }
- return conn;
- }
- }
建立与数据库的连接
- package org.lq.ssm.gp.controller;
- import java.io.InputStream;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.util.Properties;
- public class DBUtil {
- //连接数据库的路径
- private static String url;
- //连接数据库的用户名
- private static String user;
- //连接数据库的密码
- private static String pwd;
- //用于管理不同线程所获取的连接
- private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
- //静态块
- static{
- try{
- //读取配置文件
- Properties prop = new Properties();
- InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("config.properties");
- prop.load(is);
- is.close();
- //获取驱动
- String driver = prop.getProperty("jdbc.className");
- System.out.println(driver);
- //获取地址
- url = prop.getProperty("jdbc.url");
- //获取用户名
- user = prop.getProperty("jdbc.username");
- //获取密码
- pwd = prop.getProperty("jdbc.password");
- //注册驱动
- Class.forName(driver);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- /**
- * 获取一个连接
- * @return
- * @throws Exception
- */
- public static Connection getConnection() throws Exception{
- try{
- /*
- * 通过DriverManager创建一个数据库的连接
- * 并返回
- */
- Connection conn = DriverManager.getConnection(url,user,pwd);
- /*
- * ThreadLocal的set方法
- * 会将当前线程作为key,并将给定的值
- * 作为value存入内部的map中保存。
- */
- tl.set(conn);
- return conn;
- }catch(Exception e){
- e.printStackTrace();
- //通知调用者,创建连接出错
- throw e;
- }
- }
- /**
- * 关闭给定的连接
- */
- public static void closeConnection(){
- try{
- Connection conn = tl.get();
- if(conn != null){
- conn.close();
- tl.remove();
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
增加操作
- public int save(LandUser land) {
- SeConnection conn = SDEDBManager.getConn();
- if (conn != null) {
- try {
- points="1 1,2 2,3 3";//点坐标的格式是这样的。数据是随便填的
- SeInsert insert = new SeInsert(conn); // 使用当前的连接句柄Connection ,创建一个SeInsert对象.
- insert.intoTable("SDE.ztl", new String[]{"SHAPE","picid", "ybMarkNo", "ybgeometry", "dzbjh", "userId",
- "userName", "userZjh", "userYhkh", "userKhh", "userMobile", "userQygs", "userMs",
- "landDkbh", "landName"});
- insert.setWriteMode(true);// 开启buffer,设置SeInsert对象为可写模式
- SeLayer layer = new SeLayer(conn, "SDE.ztl", "SHAPE");
- SeCoordinateReference cr = layer.getCoordRef(); // 获得图层空间参考
- SeRow row = insert.getRowToSet();// 获取SeInsert对象中将要添加的SeRow对象。
- SeShape shape = new SeShape(cr);
- shape.generateFromText("POLYGON(("+points+"))"); //增加面
- // shape.generateFromText("LINESTRING("+points+")"); //增加线
- row.setShape(0, shape);
- row.setNString(1, land.getPicid());
- row.setNString(2, land.getYb_MarkNo());
- row.setNString(3, land.getYb_geometry());
- row.setNString(4, land.getDzbjh());
- row.setNString(5, land.getUserId());
- row.setNString(6, land.getUserName());
- row.setNString(7, land.getUserZjh());
- row.setNString(8, land.getUserYhkh());
- row.setNString(9, land.getUserKhh());
- row.setNString(10, land.getUserMobile());
- row.setNString(11, land.getUserQygs());
- row.setNString(12, land.getUserMs());
- row.setNString(13, land.getLandDkbh());
- row.setNString(14, land.getLandName());
- insert.execute();
- insert.flushBufferedWrites();
- insert.close();
- return 1;
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- } finally {
- try {
- conn.close();
- } catch (SeException e) {
- e.printStackTrace();
- }
- }
- }
- return 2;
- }
删除操作
- public static int delete(String id){
- try {
- Connection conn = DBUtil.getConnection();
- Statement state = conn.createStatement();
- String sql="delete from SDE.ztl where landDkbh='"+id+"'";
- // 执行Sql,得到结果集
- int flag = state.executeUpdate(sql);
- System.out.println("执行sql");
- state.close();
- DBUtil.closeConnection();
- if(flag>0){
- return 1;
- }else{
- return 0;
- }
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
修改操作
- public static int update(String id){
- try {
- Connection conn = DBUtil.getConnection();
- Statement state = conn.createStatement();
- String sql="update SDE.ztl set " +
- "picid = '"+land.getPicid()+"',"+
- "ybMarkNo ='"+land.getYb_MarkNo()+"',"+
- "ybgeometry ='"+land.getYb_geometry()+"',"+
- "dzbjh ='"+land.getDzbjh()+"',"+
- "userName ='"+land.getUserName()+"',"+
- "userZjh ='"+land.getUserZjh()+"',"+
- "userYhkh ='"+land.getUserYhkh()+"',"+
- "userKhh ='"+land.getUserKhh()+"',"+
- "userMobile ='"+land.getUserMobile()+"',"+
- "userQygs ='"+land.getUserQygs()+"',"+
- "userMs ='"+land.getUserMs()+"',"+
- "landDkbh ='"+land.getLandDkbh()+"',"+
- "landName ='"+land.getLandName()+"'"+
- " where userId = '"+land.getUserId()+"'";
- // 执行Sql,得到结果集
- int flag = state.executeUpdate(sql);
- System.out.println("执行sql");
- state.close();
- DBUtil.closeConnection();
- if(flag>0){
- return 1;
- }else{
- return 0;
- }
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
查询操作
- public static List<LandUser> selectAll(String sql){
- List<LandUser> list = new ArrayList<LandUser>();
- try {
- Connection conn = DBUtil.getConnection();
- Statement state = conn.createStatement();
- String sql="select picid,ybMarkNo,ybgeometry,dzbjh,userId," +
- "userName,userZjh,userYhkh,userKhh,userMobile,userQygs,userMs," +
- "landDkbh,landName from SDE.ztl" ;
- // 执行Sql,得到结果集
- ResultSet rs = state.executeQuery(sql);
- while (rs.next()) {
- LandUser land = new LandUser();
- land.setPicid(rs.getString("picid"));
- land.setYb_MarkNo(rs.getString("ybMarkNo"));
- land.setYb_geometry(rs.getString("ybgeometry"));
- land.setDzbjh(rs.getString("dzbjh"));
- land.setUserId(rs.getString("userId"));
- land.setUserName(rs.getString("userName"));
- land.setUserZjh(rs.getString("userZjh"));
- land.setUserYhkh(rs.getString("userYhkh"));
- land.setUserKhh(rs.getString("userKhh"));
- land.setUserMobile(rs.getString("userMobile"));
- land.setUserQygs(rs.getString("userQygs"));
- land.setUserMs(rs.getString("userMs"));
- land.setLandDkbh(rs.getString("landDkbh"));
- land.setLandName(rs.getString("landName"));
- list.add(land);
- }
- rs.close();
- state.close();
- DBUtil.closeConnection();
- return list;
- } catch (Exception e) {
- e.printStackTrace();
- return list;
- }
- }
ArcSDE学习笔记--------增、删、改、查操作的更多相关文章
- 怎样从C#中打开数据库并进行 增 删 改 查 操作
首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
随机推荐
- 「JavaSE 重新出发」02.01 基本数据类型
基本数据类型 1. 整型 注意:Java 没有任何无符号(unsigned)形式的 int.long.short 或 byte 类型. 不同进制的表示形式: 十六进制数值有一个前缀0x或0X(如0xC ...
- Volatile variables
Volatile variables apply another type of memory constraint to individual variables. The compiler oft ...
- centos7 jumpserver 部署和使用手册(二)
前面已经介绍了jumpserver的部署,基于这篇部署文档,下面介绍下部署完成后的的功能使用: 一.系统设置 1.1根据提供的帐号密码(admin/admin)登录jumpserver 修改 url ...
- Python实现机器人语音聊天
一.前言说明 1.功能简述 登录后进入聊天界面,如果服务器都在同一个地址,则都进入同一个房间 进入/离开/发消息同一房间用户都可以看到,输入“tuling”或“chatbot”可以切换为和Tuling ...
- 中国象棋程序的设计与实现(五)--回答CSDN读者的一些问题
最近写了很多文章,同时,也上传了很多免积分的FansUnion原创的优质资源,有兴趣的同学可以看来我的CSDN博客瞧瞧 http://blog.csdn.net/FansUnion. 近期,收到了不少 ...
- Hellow BeiJing
DAY1: (#^.^#),今天是9.23日,离出发去北京还有7天,好像一切还是正常的样子. 先发一张图,这就是我们机房的日常: 但是o( ̄ヘ ̄o#)我听着我耳边的cys童鞋的rap就感觉事情仿佛没辣 ...
- 即将到来的Autodesk 主要产品2015版 产品和API新功能在线培训(免费)
一年一度的Autodesk主要产品和API在线培训课程在5月份即将開始.我们呈献给大家5个课程. 1. Revit 2015 产品新功能及API 概览 2. Vault 2015产品新功能及API 概 ...
- [ACM] HDU 1400 Mondriaan's Dream (状态压缩,长2宽1长方形铺满)
Mondriaan's Dream Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- 由老同事学习SAP所想到的
前段时间一位老同事在微信上跟我说他们公司正计划导SAP系统,但整个IT中心几乎无人使用过SAP,知道我在这行业干了多年了,所以想问我怎么开始学习.于是我约他今天出来聊聊,顺便把手里的SAP ECC E ...
- java关键字之transient
转自:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizabl ...