建立连接

 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学习笔记--------增、删、改、查操作的更多相关文章

  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. 小型ceph集群的搭建

    了解ceph DFS(distributed file system)分布式存储系统,指文件系统管理的物理存储资源,不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多类别中,ceph是当下 ...

  2. 被我忽略许久的set

    心塞,set一直是我忽略的一个数据结构 1.生成一个set: 1) set(iterable) 传入一个可以迭代的数据结构: eg:字符串;元组;列表,字典 2) {v1,v2,.......,vn} ...

  3. js验证输入框

    项目开发中,都会有对表单form中的input输入框进行一些限制验证 如: <!DOCTYPE html><html lang="en"> <head ...

  4. [洛谷P3948]数据结构

    题目大意:有n个数,opt个操作,并给你md.min.max. 每种操作有以下两种:1.给一段区间加一个固定值.2.询问一段区间内满足$min\leq T*i\ mod\ md\leq max$(T是 ...

  5. [HDU5686]2016"百度之星" - 资格赛 Problem B

    题目大意:给你n,规定一个串中相邻的两个1可以合并为一个2(别的不行),让你求长度为n的全1串最多能变成多少种不同的串. 解题思路:我们先来找一波规律,发现n=1,2,3,4,5时答案分别为1,2,3 ...

  6. 紫书 习题8-5 UVa 177 (找规律)

    参考了https://blog.csdn.net/weizhuwyzc000/article/details/47038989 我一开始看了很久, 拿纸折了很久, 还是折不出题目那样..一脸懵逼 后来 ...

  7. HNU 13108 Just Another Knapsack Problem DP + Trie树优化

    题意: 给你一个文本串,和一些模式串,每个模式串都有一个价值,让你选一些模式串来组成文本串,使获得的价值最大.每个模式串不止能用一次. 思路: 多重背包,枚举文本串的每个位置和模式串,把该模式串拼接在 ...

  8. javascript jquery 推断对象为空的方式

    java中存在非常多空指针的问题,须要常常做预防和推断,如若不然,控制台出现恼人的异常,让人信心备受打击,早期敲代码的时候没有经验,不能依据异常信息找到问题的根源,唯一做的事情就是祈祷,千万别出现什么 ...

  9. 1.Swift教程翻译系列——关于Swift

    英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 我本来是做JAVA的.可是有一颗折腾的心,苹果公布Swift以后就下载了苹果的开 ...

  10. h5登录

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="Con ...