建立连接

 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. http_build_query 字符串拼接

    http_build_query 字符串拼接 产生一个urlencode之后的请求字符串. 1.将数组转化成url问号(?)后的字符串 <?php $date=array( 'name'=> ...

  2. 浅谈Android和IOS系统的差异

    总结:事件响应级别.GPU加速.进程前后台.代码运行速度.内存管理机制. 进程管理机制.内存管理机制.cpu效率.GPU加速.事件响应级别. 1.    渲染机制不同 IOS的UI渲染采用实时优先级, ...

  3. 【BZOJ 1196】[HNOI2006]公路修建问题

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二分最后选的边中的最大值是多少. mid 则所有边权小于等于mid的边都可以用了. 那么我们要怎么选择呢? ->优先选择一级的 ...

  4. PNG文件结构分析

    http://blog.163.com/iwait2012@126/blog/static/16947232820124411174877/ PNG文件结构分析 对于一个PNG文件来说,其文件头总是由 ...

  5. C++primer书店程序

    #include <iostream> #include <string> #include <cassert> #include <algorithm> ...

  6. mysql-过程与函数

    一.过程与函数简介 过程与函数是命名的PL/SQL块(也是用户的方案对象),被编译后存储在数据库中,以备执行.因此,其他PL/SQL块可以按名称来使用他们.所以可以将商业逻辑.企业规划写成函数或过程保 ...

  7. iOS CST NSDate

    好像是从ios4.1開始[NSDate date];获取的是GMT时间,这个时间和北京时间相差8个小时.下面代码能够解决问题 - (void)tDate { NSDate *date = [NSDat ...

  8. 基于IBM Bluemix的数据缓存应用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是快速缓存服务.支持 Web 和 ...

  9. 【RQNOJ】460 诺诺的队列

    [题目大意] 求全部数对(i,j)满足随意a[k]<=a[i]且a[k]<=a[j]. 形象地说,就是有一群人站成一列.每一个人有一定的身高,然后问有多少对人能够互相看得到. 把数对(i, ...

  10. 查看CPU是几核

    命令1 (查看有几个CPU):cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l 命令2 (每个CPU几核):cat /p ...