增删改

package com.commom;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

import com.commom.ReadXml;

public class BaseDao {

public Connection conn =null;//连接变量
public ResultSet rs=null;//数据集
public PreparedStatement pstmt=null;//预处理

//打开连接
public void openConnection(){
if(conn==null){
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(new ReadXml().Constring());
System.out.println("连接成功");
}
catch(SQLException ex){
System.out.println(ex.getMessage()+"路径错误");
}
catch(ClassNotFoundException ex){
System.out.println(ex.getMessage()+"驱动错误");
}
finally{
}
}
}
//关闭连接释放资源
public void dispose(){
try {
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(conn!=null)conn.close();
System.out.println("关闭成功");
}
catch (SQLException e) {
e.printStackTrace();
}
}

/*
* 添加
*/
public int Insert(String tablename,Map map) throws Exception{
String[] s=this.getInsert(map);
String sqlstr="Insert into "+tablename+" ("+s[0]+")values("+s[1]+")";
System.out.println(sqlstr);
return ExecuteNonQuery(sqlstr);
}
/*
* 修改
*/
public void Update(String tablename,Map map,String where) throws Exception{
String sqlstr="UPDATE "+tablename+" set "+getUpdate(map)+" WHERE "+where;
this.ExecuteNonQuery(sqlstr);
}
/*
* 删除
*/
public boolean Delete(String tablename,String where) throws Exception{
String sqlstr="DELETE FROM "+tablename+" WHERE "+where;
return ExecuteNonQuery(sqlstr)>0? true:false;
}

/*
* Update语句
*/
private String getUpdate(Map map){
int i=map.size();
String s="";
if(i>0){
Iterator iter=map.keySet().iterator();
while(iter.hasNext()){
Object key=iter.next();
if(i>1){
s+=key.toString()+"="+this.getvalue(map.get(key))+",";
i--;
}else{
s+=key.toString()+"="+this.getvalue(map.get(key));
}
}
}
return s;
}

/*
* 添加语句
*/
private String[] getInsert(Map map){
int i=map.size();
String s1="";
String s2="";
if(i>0){
Iterator iter=map.keySet().iterator();
while(iter.hasNext()){
Object key=iter.next();
if(i>1){
s1+=key.toString()+",";
s2+=this.getvalue(map.get(key))+",";
i--;
}else{
s1+=key.toString();
s2+=this.getvalue(map.get(key));
}
}
}
String[] s=new String[]{s1,s2};
return s;
}

/*
* 传入object返回所需string,判断类型形成语句
*/
private String getvalue(Object o){
//System.out.println(o);
if (o instanceof Integer) {
return o.toString();
} else if (o instanceof String) {
String s = (String) o;
s=this.sql_inj(s);
return "'"+s+"'";
} else if (o instanceof Double) {
return o.toString();
}else if (o instanceof Short) {
return o.toString();
}
else{
return "''";
}
}
/*
* 过滤防注入
*/
public String sql_inj(String s){
String key="select|update|delete|count|*|sum|master|script|'|declare|or|execute|alter|statement|executeQuery|count|executeUpdate";
String f[] = key.split("|");
for(int i=0; i<f.length;i++) {
s.replace(f[i], "");
}
return s;
}

/**
* 用于执行语句(eg:insert语句,update语句,delete语句)
*
* @param String
* sqlstr,SQL语句
* @param sqlParameter[]
* parms,参数集合
* @return int,SQL语句影响的行数
*/
public int ExecuteNonQuery(String sqlstr)
throws Exception {
try {
this.openConnection();
pstmt = conn.prepareStatement(sqlstr);
System.out.println(pstmt.toString());
int i=pstmt.executeUpdate();
rs= pstmt.getGeneratedKeys();
if ( rs != null && rs.next() )
{
return rs.getInt(1);
}else{
return i;
}
} catch (Exception e) {
throw new Exception("executeNonQuery方法出错:" + e.getMessage());
} finally {
this.dispose();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值