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 ...
随机推荐
- 【原创】rman备份出现ORA-19625
[oracle@sunny stage]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Sun Mar 18 ...
- PHP————系统常量
PHP常量默认为大小写敏感.传统上常量标识符总是大写的. PHP常量名和其它任何 PHP 标签遵循同样的命名规则.合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线.用正则表达式是这样表达 ...
- QT+OpenCV进行图像采集最小时延能够达到20ms
得到“算法高性能”项目的支持,目前成功地在Win10上运行WB2,感觉目前的代码速度慢.响应慢.CPU占用比例高.这种情况下3399上能够运行,说明这个平台已经是很强的了.下一步,首先在Windows ...
- “.”开头,以"}"结尾,中间是任意字符的正则
"."开头,以"}"结尾,中间是任意字符的正则 /^\..+\{$/
- Python2x,3x源码的区别,编译型解释型,变量,注释,if,用户交互input,基本数据类型3种
cpu 内存 硬盘 操作系统 cpu: 计算机的运算和计算中心,相当于人类的大脑. 内存:暂时存储数据,临时加载数据应用程序,4G,8G,16G,32G #速度快,造价高,断电即消失 硬盘 ...
- session 超时跳转登陆页面
/** * session超时跳转登陆页面 * @author zhangdong * 2017年10月24日 */ @Aspect @Component public class SessionTi ...
- Eclipse配置class文件输出目录
1, Eclipse选中项目名称,邮件选中“Build Path”,然后选择“Configure Build Path”--->选择“Source” Tab---->修改"Def ...
- The Karplus-Strong Algorithm
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/48730857 Karplus-Stro ...
- [Typescript] Promise based delay function using async / await
Learn how to write a promise based delay function and then use it in async await to see how much it ...
- UVA 1415 - Gauss Prime(数论,高斯素数拓展)
UVA 1415 - Gauss Prime 题目链接 题意:给定a + bi,推断是否是高斯素数,i = sqrt(-2). 思路:普通的高斯素数i = sqrt(-1),推断方法为: 1.假设a或 ...