今天写JDF框架代码,写到了bean的SQL加工以及变量绑定。就写了个方法,希望大家喜欢。用过的就过来打酱油,没用过的,就过来俯卧撑一把吧。
我们写JAVA代码,在操作数据库用JDBC的方法的时候,会用到SQL的绑定变量。
我们大家一般的做法是用"?" ,然后按"?"的排序给予赋值,但是如果是复杂的SQL,或者说一个好好的SQL,需要在中间加一个条件,那么对应的后面的付值变量都要改动了。例如。
SELECT NAME,ID,? FROM USER WHERE CODE=?
PreparedStatement.setString(1, "AGE");
PreparedStatement.setString(2, "ADMIN");
这里我们绑定了两个变量,一个是动态读取列,一个是条件,如果现在我们由于业务需要,需要再多读一列。
那下面的SQL是这样,那么这里给CODE绑定的变量赋值的索引就要改变了。
SELECT NAME,ID,?,? FROM USER WHERE CODE=?
PreparedStatement.setString(1, "AGE");
PreparedStatement.setString(3, "ADMIN");
PreparedStatement.setString(2, "FLAG");
这里我们可以发现,需要把CODE的赋值的索引给改掉,如果是复杂的SQL,那改动更多,那怎么办呢?
下面我们用这种类型的绑定来做,也就是换个思路,把绑定的变量用name给替换下,通过程序自动排序。
SELECT NAME,ID,?,? FROM USER WHERE CODE=?
替换为
SELECT NAME,ID,:CLUM1,:CLUM2 FROM USER WHERE CODE=:CODE
我们在赋值的时候,做个MAP
HashMap map = new HashMap();
map.put("CODE",new Long(2));
map.put("CLUM1","AGE");
map.put("CLUM2","STATE");
然后写个绑定变量的方法,这里的顺序问题就无所谓了,代码如下:
这里唯一的小要求就是SQL的绑定变量 :xx 后面要留个空格,便于正则表达式寻找。这里希望谁能给我个好的正则表达式,这样就可以不用这个了。
上面的程序,我们运行,输出结构如下:
ConnectionId=100000
ConnectionId=100000 Preparing Statement: INSERT INTO PERSON(PERSON_ID,AGE,FIRSTNAME,LASTNAME,STATE) VALUES(? ,? ,?,?,?)
邦定变量的值:PERSON_ID=2
邦定变量的值:AGE=22
邦定变量的值:FIRSTNAME=张三
邦定变量的值:FIRSTNAME=张三
邦定变量的值:STATE=1
PreparedStatementId=100001 Executing Statement: INSERT INTO PERSON(PERSON_ID,AGE,FIRSTNAME,LASTNAME,STATE) VALUES(? ,? ,?,?,?)
PreparedStatementId=100001 Parameters: [2, 22, 张三, 张三, 1]
PreparedStatementId=100001 Types: [java.lang.Long, java.lang.Long, java.lang.String, java.lang.String, java.lang.Long]
大家看看,是不是很简单呢?而且不用为那个索引头疼了。
原创文章,请尊重版权噢:
http://http://blog.csdn.net/keyboardsun
作者KEYBOARDSUN
分享到:
相关推荐
Java 是一种广泛使用的编程语言,它提供了多种方式来处理数据库数据,而 JDBC(Java Database Connectivity)是 Java 中连接数据库的标准 API 之一。将数据库数据导出到 CSV 文件是一种常见的数据交换格式,它可以被...
在Java编程领域,JDBC(Java Database Connectivity)是连接Java应用程序和关系型数据库的重要桥梁。本项目"javajdbc宠物商店-Mysql数据库"是基于Java JDBC实现的一个宠物商店管理系统的数据库部分,它提供了与MySQL...
java jdbc读取FoxPro数据库数据,完整类以及FoxPro数据库数据遍历。JDBC读取FoxPro数据库数据
JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...
Java数据库编程JDBC(Java Database Connectivity)是Java平台中用于访问数据库的标准应用程序接口,它为开发者提供了连接和操作各种数据库的能力。本压缩包包含了三个重要组成部分:《JAVA数据库编程JDBC》、《Java...
《JDBC与Java数据库编程》一书旨在深入探讨Java如何通过JDBC(Java Database Connectivity)这一接口与数据库进行高效互动,实现数据的读取、写入、更新等操作。以下是对该主题的详细解析,包括JDBC的概念、体系结构...
实验3 JDBC操作数据库3主要目的是通过Java的JDBC技术来熟悉和掌握数据库的连接与操作。这个实验涉及了以下几个核心知识点: 1. **MySQL数据库**:实验中提到了使用MySQL作为关系型数据库管理系统,它是开源且广泛...
### JDBC与Java数据库编程 #### 第一章:JDBC的概念 **1.1 JDBC是什么** JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一的访问接口。JDBC的目标是允许开发...
(1)熟练掌握JDBC操作数据库的整个过程; (2)利用预处理语句操作数据库; (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,...
总结而言,JDBC是Java数据库编程的基础,理解和掌握JDBC的原理和使用方法对于任何Java开发者来说都是必要的,特别是对于那些需要进行数据库操作的项目。同时,随着技术的发展,开发者也应该了解和考虑使用ORM框架以...
JDBC的主要作用是在Java程序与数据库之间建立连接,实现数据的存取操作。 JDBC编程的主要步骤如下: 1. 加载驱动:在程序中使用Class.forName()方法加载数据库对应的驱动类。 2. 创建连接:通过DriverManager.get...
Java数据库编程JDBC(Java Database Connectivity)是Java平台中用于与各种类型数据库交互的一套标准API。它允许Java开发者在应用程序中执行SQL语句,从而实现数据的存取、更新和管理。理解JDBC的基本概念和操作是...
JDBC是Java程序访问数据库的一组接口和类,它允许开发者使用SQL语句来操作数据库。JDBC提供了一个标准的API,使得开发者无需关心底层数据库的具体实现,即可与不同的数据库系统进行通信。 在Java中连接PG数据库,...
### Java JDBC数据库编程技术详解 #### 一、引言 在现代软件开发中,数据库扮演着极其重要的角色,尤其在商业应用领域。无论是简单的数据存储还是复杂的数据处理,数据库都是必不可少的一部分。Java作为一门广泛...
在"JDBC与Java数据库程序设计"中,我们将深入探讨如何利用JDBC技术实现高效的数据库操作。 1. **JDBC基础** - JDBC API由一系列接口和类组成,如`Connection`、`Statement`、`PreparedStatement`和`ResultSet`等。...