java的删除功能代码 java删除按钮怎么实现

Java中怎样实现批量删除操作?

进行编写编程代码就能实现批量删除操作。

创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为集贤企业提供专业的网站建设、网站设计,集贤网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

具体代码如下:

[java]  SPAN style="WHITE-SPACE: pre" /SPANpublic Connection con=null;  

public PreparedStatement pstmt=null;

/**

* 得到连接对象 

*/  

public void getConnection(){      

String driver="com.mysql.jdbc.Driver";      

String url="jdbc:mysql://localhost:3306/zufang?

user=rootpassword=rootuseUnicode=truecharacterEncoding=GB2312";      

try {          

Class.forName(driver);          

con=DriverManager.getConnection(url,"root","root");      

} catch (ClassNotFoundException e) {          

e.printStackTrace();      

} catch (SQLException e) {          

e.printStackTrace();

}

}

public Connection con=null;

public PreparedStatement pstmt=null;

/**

* 得到连接对象

*/

public void getConnection(){

String driver="com.mysql.jdbc.Driver";

String url="jdbc:mysql://localhost:3306/zufang?

user=rootpassword=rootuseUnicode=truecharacterEncoding=GB2312";

try {

Class.forName(driver);

con=DriverManager.getConnection(url,"root","root");

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

[java]  SPAN style="WHITE-SPACE: pre" /SPAN/**

* 批量删除信息表中的信息

* @param sql

* @param param

* @return

*/ 

public boolean updateBatchDel(String sql,String[] param){ 

boolean flag = false; 

getConnection();   

try {  

con.setAutoCommit(false);   

pstmt = con.prepareStatement(sql);   

for(int i =0 ;iparam.length;i++){    

pstmt.setString(1,param[i].trim());   

pstmt.addBatch();                  

}    

pstmt.executeBatch(); //批量执行

con点抗 mit();//提交事务    

flag = true;   

} catch (SQLException e) {   

try {   

con.rollback(); //进行事务回滚    

} catch (SQLException ex) {  

ex.printStackTrace(); 

}    

}finally {   

closeAll(null,pstmt,con);   

}  

return flag; 

}

/**

* 批量删除信息表中的信息

* @param sql

* @param param

* @return

*/

public boolean updateBatchDel(String sql,String[] param){

boolean flag = false;

getConnection(); 

try {

con.setAutoCommit(false);

pstmt = con.prepareStatement(sql);  

for(int i =0 ;iparam.length;i++){  

pstmt.setString(1,param[i].trim()); 

pstmt.addBatch();

}   

pstmt.executeBatch(); //批量执行  

con点抗 mit();//提交事务 

flag = true;

} catch (SQLException e) { 

try {  

con.rollback(); //进行事务回滚

} catch (SQLException ex) {

ex.printStackTrace();

}  

}finally {

closeAll(null,pstmt,con);

}

return flag;

上面是进行批量删除的编程码。

java 删除代码

同意用存储过程。用存储过程的时候,你可以定义Handler,可以根据SQLSTATE来判断,如果发现删除失败,而且是由于外键引起的(有对应的SQLSTATE代码的,不同sql方言可能不同),那么就不能删除。可以返回错误代码

另外,JAVA里面,其实你只要catch到sqlexception,管它是什么错误呢?如果SQLEXCEPTION发生(1是SQL系统挂了,你的例子中2 是由于删除失败(外键)。不管什么情况,都表征失败了。不就可以了?

根据ER图来判断是否有外键,这样可行吗?

这样JAVA代码就要依靠ER图了,实际开发中,这种后期维护挺不容易的。尽量要避免这种代码依赖。

如何实现springmvc+mybatis用多选框批量删除的功能Java代码

我会将在编写过程中出现的一些小知识点也进行总结概括的。

此项目基于的框架是:springmvc+mybatis

(1)controller

/**

* 批量删除 batch

*/

@RequestMapping("/batchDeletes")

@ResponseBody

public void batchDeletes(HttpServletRequest request,HttpServletResponse response){

String items = request.getParameter("delitems");

ListString delList = new ArrayListString();

String[] strs = items.split(",");

for (String str : strs) {

delList.add(str);

}

userService.batchDeletes(delList);

}

代码思路:

从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。

(2)service

/**

* 批量删除

*/

void batchDeletes(List delList);

(3)impl

/**

* 批量删除

*/

@Override

public void batchDeletes(List delList) {

userMapper.batchDeletes(delList);

}

(4)mapper

/**

* 批量删除

*/

void batchDeletes(List delList);

(5)mapper.xml

!--批量删除 --

delete id="batchDeletes" parameterType="java.util.List"

DELETE FROM tp_user where uname in

foreach collection="list" index="index" item="item" open="(" separator="," close=")"

#{item}

/foreach

/delete

如上的mybatis指代的意思如下:

foreach元素的属性主要有 item,index,collection,open,separator,close。

item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)

index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.

open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.

close表示以什么结束.

前台代码:

user_list.jsp

//全选

function selectAll(){

if ($("#SelectAll").is(":checked")) {

$(":checkbox").prop("checked", true);//所有选择框都选中

} else {

$(":checkbox").prop("checked", false);

}

}

//批量删除

function batchDeletes(){

//判断至少写了一项

var checkedNum = $("input[name='subcheck']:checked").length;

if(checkedNum==0){

alert("请至少选择一项!");

return false;

}

if(confirm("确定删除所选项目?")){

var checkedList = new Array();

$("input[name='subcheck']:checked").each(function(){

checkedList.push($(this).val());

});

$.ajax({

type:"POST",

url:"web/user/batchDeletes.action",

data:{"delitems":checkedList.toString()},

datatype:"html",

success:function(data){

$("[name='checkbox2']:checkbox").attr("checked",false);

art.dialog.tips('删除成功!');

setTimeout("location.reload()",1000);//页面刷新

},

error:function(data){

art.dialog.tips('删除失败!');

}

});

}

}

table class="tb_list"

tr

td align="center"input type="checkbox" id="SelectAll"

onclick="selectAll();" / 全选/td

th序号/th

/tr

c:forEach items="${page.list }" var="items" varStatus="idx"

tr class="row_${idx.count%2+1}"

td style="display:none"${batch.id}/td

td align="center"input type="checkbox" id="subcheck"

name="subcheck" value="${items.UNAME }" /

/td

td${page.onePageCount*(page.currentPage-1)+idx.count }/td

tr

/table

备注:此代码我传值的主键是用uname来删除的,实际应该用id作为主键,因为id的unique

,uname若重名,则就会出现bug,相信大家都明白,就不再过多解释了。


网站标题:java的删除功能代码 java删除按钮怎么实现
文章源于:http://scjbc.cn/article/ddedeeh.html

其他资讯