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 ...
随机推荐
- poj1170 - 转换成背包
题目链接 有5种物品,给出每个物品的单价. 给出几个这些物品的组合和这个组合的价格.买组合要比一件件的买便宜. 问给定的购买计划最少花多少钱. ---------------------------- ...
- 优动漫PAINT基础系列之拾色器教学
在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...
- JavaScript设计模式(biaoyansu)(2)
单例模式实例 (创建类模式): let elBalance = document.getElementById('balance') function init () { var a = new Di ...
- 捕捉soap的xml形式
下面是我以前对Php的soap接口进行抓包分析出的结果,这个分析在当服务端或者客户端的Php没有安装soap模块时,可以使用构建xml的方式实现相同的功能 服务端: $data = $HTTP_RAW ...
- luoguP1555 尴尬的数字(暴力+map)
题意 题解 枚举每一个可能的二进制数.扔到一个map里 再枚举每一个可能的三进制数看map有没有就行了 反正就是很水 #include<iostream> #include<cstr ...
- [洛谷P1352][codevs1380]没有上司的舞会
题目大意:某大学有N个职员,编号为1~N.他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但如果某个职员的上司来参加舞 ...
- Centos7&docker-ce&compose&wordpress
如题,最近帮人装个WordPress,想起来用docker方便,这里做个记录. 原文:https://my.oschina.net/finchxu/blog/2877580 因为docker要求lin ...
- caioj 1204 Catalan数(模板)
题目中对卡特兰数的总结很不错 以下copy自题目 Catalan数列:1,1,2,5,14,42,(前面几个要背) 即 h(0)=1,h(1)=1,h(2)=2,h(3)=5...公式:h(n)=C( ...
- 题解 洛谷 P3381 【【模板】最小费用最大流】
发了网络流,再来一发费用流 能做费用流的,网络流自然做得来,但在这还是不要脸的安利一下自己的博客(里面也有网络流的题解): 点我 扯远了... 费用流,就是在不炸水管的情况下求源点到汇点的最小费用. ...
- 这两道题目很相似 最优还钱方式 & 除法推导
http://www.cnblogs.com/grandyang/p/6108158.html http://www.cnblogs.com/grandyang/p/5880133.html 都是根据 ...