`
大象06
  • 浏览: 119658 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDBC实现记录的更新或者删除

 
阅读更多

众所周知,hibernate里面有一个自带的方法saveOrUpdate非常好用,本来我想找找在JDBC里面有没有类似的方法,但是好像没有发现,于是就需要自己用其他的方法实现。

首先应该要判断这条记录在数据库里面存不存在,如果存在那么就是更新,如果不存在,才是插入。

首先是JDBC连接数据库:

	private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
	private static String user = "sa";
	private static String password = "123456";
	private static Connection conn = null;
	private static ResultSet rs = null;
	private static PreparedStatement ps = null;

	public static ResultSet excuteSql(String sql)
			throws ClassNotFoundException, SQLException {

		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		conn = DriverManager.getConnection(url, user, password);
		ps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
				ResultSet.CONCUR_READ_ONLY);
		rs = ps.executeQuery();

		return rs;
	}

 

然后我们根据比较限制的查询条件查找记录数,如果只有一条记录,那证明已经存在,如果记录为空,那么证明记录不存在,需要插入。

	public static boolean isExist(int aa, int bb,
			String cc) throws ClassNotFoundException, SQLException {
		String str = "select* from ttest where auditid=" + aa
				+ " and rncid=" + bb + " and rncname='" + cc + "'";
		ResultSet rs1 = null;
		rs1 = excuteSql(str);
		rs1.last();
		int rowCount = rs1.getRow();
		if (rowCount == 0) {
			return false;
		}
		if (rowCount == 1) {
			return true;
		}
		return false;
	}

 

当然,如果每次都要有多条记录,而可能其中一些已经存在,另外一些不存在,这就要在for循环里面判断了。假设总共有5条记录,最好的方法就是将update语句和insert语句写在一个StringBuffer里面,然后一起执行,这样会好很多。

for (int i = 0; i < bb.length; i++) {
	boolean flag = false;
	try {
		flag = isExist(aa,bb[i],cc);
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	if (flag) {
		updateStr = update(aa,bb[i], cc,dd);
		sqlsf.append(updateStr);
	} else {
		insertStr = insert(aa,bb[i], cc,dd);
		sqlsf.append(insertStr);
	}
}
try {
			sql(sqlsf.toString());
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

 

分享到:
评论

相关推荐

    JDBC实现客户关系管理

    在这个项目中,我们使用JDBC(Java Database Connectivity)来实现一个基本的CRM系统,涵盖了CRUD(Create、Read、Update、Delete)操作,同时运用了时间控件、字符截取和分页等技术,以提供更加高效和用户友好的...

    Serlvet+jdbc 网上商城购物车程序

    Servlet+jdbc 网上商城购物车程序是一个基于Java Web技术实现的电子商务应用程序,它主要利用Servlet进行服务器端处理,并通过JDBC(Java Database Connectivity)与数据库交互,以实现用户在虚拟商城中的商品选择、...

    电话本管理系统jdbc

    电话本管理系统jdbc是一个基于Java编程语言的数据库管理应用程序,它实现了对电话簿数据的基本操作,如添加、删除、修改和查询。在这个系统中,DAO(Data Access Object)模式被用作与数据库交互的核心机制,提供了...

    Struts2-Crud+JdbcDemo最简单的Struts2+jdbc学习曾删改查程序

    JDBC(Java Database Connectivity)是Java中用于访问数据库的标准API,提供了连接、查询、插入、更新和删除数据的能力。这个"Struts2-Crud+JdbcDemo"项目是一个基础的学习示例,涵盖了如何使用Struts2和JDBC进行...

    jsp+servlet+jdbc实现的课程管理系统

    【标题】:“jsp+servlet+jdbc实现的课程管理系统”是一个基于Java技术的Web应用程序,用于管理课程相关的数据。它利用了JavaServer Pages (JSP)、Servlet和Java Database Connectivity (JDBC) 这些核心的Java Web...

    sqljdbc和测试jdbc连接类

    `test_jdbc.java`可能包含一个名为`TestJdbc`的类,这个类通常会实现上述的JDBC连接步骤,并可能包含一些额外的功能,如插入、更新、删除数据,或者执行存储过程。测试类可能会包含以下方法: - `void ...

    jdbc项目.zip

    在这个项目中,通过JDBC编写SQL语句,可以实现对数据库中数据的插入、更新、删除以及查询。例如,使用PreparedStatement预编译SQL语句,可以提高效率并防止SQL注入攻击。 6. **模糊查询**:模糊查询允许用户使用...

    轻量级封装jdbc 实现增删改查

    3. 结果集处理:封装结果集的遍历和转换,将数据库记录转化为Java对象,或者将Java对象转化为数据库记录。 4. 异常处理:统一异常处理机制,捕获并包装JDBC异常,简化错误处理。 5. 事务管理:提供事务控制接口,...

    JDBC+JQuery+ajax小例子

    在本实例中,JDBC被用来连接到数据库,执行查询和更新操作,如用户登录验证时的用户名和密码查找,或者删除操作时的数据移除。 Servlet是Java Web开发中的服务器端组件,用于扩展服务器的功能。在本项目中,Servlet...

    案例-jsp+jdbc实现留言管理程序

    【标题】:“案例-jsp+jdbc实现留言管理程序”是一个基于Java Web技术的项目,它利用JSP(JavaServer Pages)和JDBC(Java Database Connectivity)来构建一个用于管理用户留言的应用程序。在这个系统中,用户可以...

    JDBC数据库

    4. **删除(Delete)**:DELETE语句用于移除数据库中的记录。同样通过`PreparedStatement`的`executeUpdate()`方法执行。 ### 防止SQL注入 SQL注入是一种常见的网络安全威胁,攻击者通过输入恶意的SQL代码来获取...

    jsp+servlet+jdbc+mysql实现的新闻管理系统

    **统计在线人数** 可能通过记录用户的session活动来实现。当用户打开网站时创建session,退出时销毁,或者超时自动失效。通过统计当前活跃的session数量,可以近似得到在线用户数。 这个新闻管理系统展示了Java Web...

    JDBC_学生住宿管理系统

    同时,也能删除不再需要的记录或者更新已有的信息。这种功能在日常管理中非常实用,便于及时维护和更新住宿数据。 “几乎所有关键字的查询”表示系统具有强大的查询能力,用户可以根据多种条件进行筛选,比如学生...

    MySQL-JDBCjar包

    3. **执行SQL语句**:一旦建立了连接,你可以创建一个`Statement`或`PreparedStatement`对象来执行SQL查询、插入、更新或删除操作。例如,创建一个`Statement`并执行SELECT查询: ```java Statement stmt = conn....

    neo4j-jdbc相关jar

    通过JDBC,开发者可以执行SQL查询、插入、更新和删除数据,以及处理结果集。Neo4j-JDBC驱动程序实现了这个接口,使得我们可以使用熟悉的Java编程方式来操作图形数据。 在使用"neo4j-jdbc相关jar"时,你需要将包含的...

    java project user jdbc

    Java项目中的用户JDBC操作是Java开发者经常遇到的任务,它涉及到数据库连接、查询、更新以及关闭资源等步骤。在这个项目中,"java project user jdbc"很可能是实现了一个用户管理的系统,利用Java Database ...

    BBS系统JSP+JDBC

    此外,系统还包含了管理员界面,管理员可以管理论坛的分类、帖子以及用户账户,这通常涉及到更复杂的数据库操作,如查询、更新和删除记录。 JSP是Java的一种视图技术,它允许在服务器端生成HTML或其他类型的文档。...

    jdbc+serlvet分页查询代码

    3. **执行SQL语句**:通过`Statement`或`PreparedStatement`对象执行SQL查询、插入、更新和删除操作。 4. **结果集处理**:使用`ResultSet`对象来获取查询结果,遍历并处理返回的数据。 5. **分页查询**:为了实现...

    OracleOaec-GUI_JDBC项目

    它允许Java开发者执行SQL语句,实现对数据库的连接、查询、更新和删除操作。在OracleOaec-GUI_JDBC项目中,开发者可能使用了`java.sql.Connection`、`Statement`、`PreparedStatement`和`ResultSet`等核心接口来操作...

Global site tag (gtag.js) - Google Analytics