`

hibernate4 Oracle executeQuery()方法执行删除无法删除数据库数据

 
阅读更多

 

项目开发中,使用的hibernate oracle删除数据时使用以下代码不能删除数据

              public void delPerson(String name) {
                         Session session = HibernateUtil.currentSession();
		String hql = "delete from Person where name= :name";
		Query query = session.createQuery(hql);
		query.setParameter("name", name);
		return query.executeUpdate();
              }

 改为类似下面的写法就行了

 

 

public void delPerson(Date createDate ) {
		Session session = HibernateUtil.currentSession();
		String time = DateUtil.convertDate2Str(createDate, "yyyy-MM-dd");
		String sql = "select id from person where to_char(trunc(tax_date, 'dd'), 'yyyy-mm-dd') = :taxDate";
		SQLQuery query = session.createSQLQuery(sql);
		query.setParameter("taxDate", time);
		List list = query.list();
		Iterator iterator = list.iterator();
		List<String> idList = new ArrayList<String>();
		while (iterator.hasNext()) {
			String obj = (String) iterator.next();
			idList.add(obj);
		}
		Person taxBean = new Person();
		for(String id : idList) {
			taxBean.setId(id);
			session.delete(taxBean);
			session.flush();//此处相当于提交一次,否则循环执行完后只会删除一条数据
		}
	}

 

 

java学习交流群:513650703

分享到:
评论

相关推荐

    JAVA连接ORACLE数据库方法及测试

    /* 通过DriverManager的getConnection()方法获取数据库连接 */ conn = DriverManager.getConnection(url, user, password); } catch (Exception ex) { System.out.println("数据库连接出错"); } ...

    数据库连接通用类

    1.增加了对Oracle9i的数据库支持 2....更新了SQLTool,OracleTool,MySQLTool类里面的executeQuery方法的返回值为List接口类型 8.更新了SQLTool,OracleTool,MySQLTool类的数据初始化方式

    java中executeQuery()方法

    使用JDBC连接数据库需要4步:executeQuery()方法是第四步执行查询;要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们...

    ExecuteQuery

    ExecuteQuery.rar 数据库操作工具

    Java更新、插入、删除数据库中的内容.rar

    Java更新、插入、删除数据库中的内容,这个比较基础了,但比较实用了,可学习Java与SqlServer数据库如何建立通信,如何通过代码来执行数据库的命令,包括删除、更新、添加、查询记录等操作。比如更新、删除、插入和...

    读取数据库信息到xml

    { //链接数据库,取得数据 //Class.forName("oracle.jdbc.driver.OracleDriver");//oracle数据库 Class.forName("com.mysql.jdbc.Driver");//mysql数据库 conn=DriverManager.getConnection("jdbc:mysql://192.168...

    Java JSP Servlet数据库连接代码.rar

    Java JSP Servlet数据库连接代码,把数据库连接封装在Servlet中,可多次重复调用,另外更换数据库时候也很方便修改。//连接并查询数据库  String sqlStr="select * from users"; //SQL查询语句  Statement st=...

    Java连接查询数据库代码.rar

    Java连接查询数据库代码,可以了解下加载驱动器、获取连接、获取Statement对象、执行查询、遍历ResultSet、获取数据、在控制台输出数据、输出出错信息等方面的小技巧。Class.forName(...

    jdbc连接数据库getConnection 增、删、改、查

    SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql....

    Java数据库查询结果的输出

    Java数据库查询结果的输出 摘自:北京海脉信息咨询有限公司  利用Java开发数据库应用时,经常需要在用户界面上显示查询结果。我们可以利用Vector、JTable、AbstractTableModel等三个类较好地解决这一问题。 类...

    NC65通过BaseDAO操作数据库

    NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...

    JSP留言簿 4个JSP文件

    这是一个学习JSP的实例,主要是通过Statement 对象的executeUpdate()方法把留言信息存入数据库和从数据库中删除留言信息,采用Statement 对象的executeQuery() 方法来从数据库中读取留言。不包括数据库,你可以自己...

    Java连接数据库并修改内容.rar

    Java连接数据库并修改内容,Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动器  Connection con=DriverManager.getConnection(dbURL,user,password); //获取连接  String sqlStr="select * from ...

    JDBC访问数据库的步骤

    执行数据更新executeUpdate():insert、update、delete SQL语句的创建:String sql=“sql命令”; 创建PreparedStatement的对象: pstmt=con. PrepareStatement(sql); 执行赋值操作(“?”占位符的用法): ...

    JSP通过JDBC访问数据库

    是一个最简单,也是学习jsp必须会的一个入门实验----通过jdbc连接数据库。 采用jsp+access数据库实现,同时使用javabean通过jdbc连接数据库。运行结果将显示从数据库查询出的图书。里面包含了javabean的源代码及解释...

    使用Java JDBC实现一个简单的数据库操作.txt

    在连接成功后,通过调用statement对象的executeQuery()方法执行了一条SQL查询语句,并将结果保存到了结果集对象中。最后遍历结果集,输出了每个用户的ID、姓名和电子邮件地址。在finally块中关闭了所有的资源。由于...

    jdbc基础和参考

    ORM:使用元数据信息来描述对象和数据库之间的关系,并且能够自动实现java中持久化对象到关系型数据库中表的映射 脏检查:自动对缓存中的数据进行检查,并且选择在合适的时机和数据库之间进行交互,以保持数据的...

    使用JDBC总结操作数据库

    1. 加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//相当于我们的第三方工具pl/...命令对象执行语句ResultSet rs = st.executeQuery(sql);//注意 select 返回的是一个结果集 6. 关闭连接对象con.close();

    Oracle连接方法

    .确保自己的oracle服务正常运行 2.保证class12.jar,oracle的驱动是否正常加载(放在路径下) ... ResultSet rset = stmt.executeQuery ( "select BANNER from SYS.V_$VERSION" ); 如果驱动包没有问题,能正常访问。

Global site tag (gtag.js) - Google Analytics