`
osacar
  • 浏览: 211574 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jdbcTemplate 查询数据库字段名称,类型方法

阅读更多
jdbcTemplate 操作方法
/**
*1.方法一:
*/
String sql = "select * from "+ tableName;
//RowCountCallbackHandler rcch = new RowCountCallbackHandler();
//this.jdbcTemplateDao.query(sql, rcch);
//String[] coloumnName = rcch.getColumnNames();
//int[] coloumnType = rcch.getColumnTypes();
SqlRowSet sqlRowSet = this.jdbcTemplateDao.queryForRowSet(sql);
SqlRowSetMetaData sqlRsmd = sqlRowSet.getMetaData();
int columnCount = sqlRsmd.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
Map<String,String> fieldMap = new HashMap<String,String>();
fieldMap.put("name", sqlRsmd.getColumnName(i));
fieldMap.put("fieldType", String.valueOf(sqlRsmd.getColumnType(i)));
tableFieldList.add(fieldMap);
}

/**
*方法二:
*/
String sql = "select * from "+ tableName;
RowCountCallbackHandler rcch = new RowCountCallbackHandler();
this.jdbcTemplateDao.query(sql, rcch);
String[] coloumnName = rcch.getColumnNames();
int[] coloumnType = rcch.getColumnTypes();



下面这里是JDBC的操作方法

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSetMetaData;

public class OperateDB {

 public static void main(String[] args) {
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://192.168.11.211/education?useUnicode=true&characterEncoding=utf-8";
   String user = "root";
   String password = "12345678";
   Connection con = (Connection) DriverManager.getConnection(url, user, password);
   Statement statement = con.createStatement();
   ResultSet result = statement.executeQuery("select * from t_sys_user");
注意,这里,完全可以操作视图,操作表的sql语句 与操作视图的sql语句一样,  

 


   ResultSetMetaData metadata = (ResultSetMetaData) result.getMetaData();
   List<String> metadataList = new ArrayList<String>();
   System.out.println("====================表结构=============================");
   for(int i = 1; i <= metadata.getColumnCount();i++){
    metadataList.add(metadata.getColumnName(i));
    System.out.print(metadata.getColumnName(i) + "   ");   //name
    System.out.print(metadata.getColumnTypeName(i) + "   ");  //type
    System.out.print(metadata.isNullable(i) + "   ");    //null
    System.out.print(metadata.getColumnCharacterSet(i) + "   "); //encode
    System.out.println();   //key
    
   }
   
   System.out.println("====================表数据=============================");
   Iterator<String> i = null;
   String oneKey = null;
   while(result.next()){
    i = metadataList.iterator();
    while(i.hasNext()){
     oneKey = i.next();
     System.out.print(oneKey + ":" + result.getString(oneKey) + "    ");
    }
    System.out.println();
   }
   
   result.close();
   statement.close();
   con.close();
   
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  
 }

}
分享到:
评论

相关推荐

    spring的jdbctemplate的crud的基类dao

    `find` 方法用于查询数据库,接受SQL语句、参数数组以及结果集的Java类型作为输入,返回一个对象列表。`addOrUpdateOrDelete` 方法则用于执行插入、更新或删除操作,依赖于传入的SQL语句和参数。 接着,`...

    JDBC连接数据库的步骤

    ResultSet是一个游标,可以通过`next()`方法移动到下一行,然后通过字段索引或名称获取列值。 ```java ResultSet rs = stmt.executeQuery("SELECT * FROM table"); while (rs.next()) { int id = rs.getInt(1); ...

    quartz动态从数据库获取时间定时改进

    首先,我们需要在数据库中创建一个表来存储定时任务的相关信息,如任务ID、任务名称、触发器类型、cron表达式等。这些字段将用于构建Quartz的JobDetail和Trigger对象。例如,我们可以设计一个`jobs`表,包含`job_...

    jpa的一对多和多对多代码

    `@JoinTable`用于定义连接表的名称和外键列,`mappedBy`属性指定反向关联的字段。 ### 实现细节 在实际应用中,我们通常会创建一个中间实体(join entity)来管理多对多关系,以存储额外的信息或扩展关系。例如,`...

    springmvc注解实例

    5. **@Autowired**:用于自动装配bean,Spring会根据类型或名称找到合适的bean注入到标注的字段或方法参数中。 6. **@Service** 和 **@Repository**:这两个注解分别用于标记业务逻辑层和服务数据访问层的类,它们...

    javajdbc宠物商店

    - 连接URL通常包含数据库服务器地址、端口、数据库名称,例如:"jdbc:mysql://localhost:3306/petshop"。 - 需要提供数据库用户名和密码来认证。 4. **SQL语句的执行**: - `Statement`接口用于执行静态SQL语句...

    hiber-template

    3. 字段属性:可以根据字段类型自动选择Java类型,或者手动指定类型、是否为主键、是否允许为空等属性。 4. DAO接口与实现:可以设置是否生成基本的CRUD操作,以及是否使用Spring的JdbcTemplate或MyBatis等其他数据...

    springmvc jdbc的增删改查

    对于JDBC,Spring 提供了JdbcTemplate,它是一个简化数据库访问的工具类,提供了执行SQL语句的模板方法。JdbcTemplate将繁琐的连接管理、异常处理和结果集转换等工作抽象出来,使开发者可以专注于业务逻辑。 在项目...

    zTree异步加载Demo

    在本Demo中,我们创建了一个数据库表,可能包含id、父id、名称等字段,这些字段与zTree的节点属性相对应。SpringMVC的Controller将根据zTree的请求参数查询数据库,获取指定节点的子节点数据,然后以JSON格式返回。 ...

    zTree后台组装树结构java代码

    - 可能还需要其他字段,如`name`(节点名称)、`level`(层级)等,具体取决于业务需求。 4. **JDBC连接MySQL**: - 使用`DriverManager.getConnection()`方法建立到MySQL服务器的连接。 - 编写SQL查询语句,...

    java连接mysql 5.0代码

    Java JDBC(Java Database Connectivity)是Java平台标准的一部分,它提供了一套API,使得Java程序能够与各种类型的数据库进行交互,包括MySQL。以下是对这个主题的详细阐述: 首先,为了在Java中使用JDBC连接MySQL...

    day01_eesy_01mybatis.zip

    实体类中的属性和数据库表的字段名称保持一致 user User id id user_name user_name 5.mybatis的入门 mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao接口 第三步...

    使用springmvc做的增删改查

    例如,使用DataSource bean配置数据库连接,并配置JdbcTemplate或JPA的相关设置。 三、Model与Entity类 创建与数据库表对应的实体类,通常会包含属性和getter/setter方法。使用注解如@Entity(JPA)或@Table...

    Spring入门

    - **示例**:定义一个使用`JdbcTemplate`执行SQL查询的方法。 #### 对象与RDBMS操作 - **定义**:描述如何将Java对象映射到关系型数据库表中,包括对象的创建、读取、更新和删除等操作。 - **示例**:定义一个Java...

    shopping.JAVA

    在这个名为 "shopping.JAVA" 的项目中,我们可以看到 `JAVA` 被用来连接并操作 `MySQL` 数据库,这通常是构建 Web 应用程序或后端服务的一种常见方法。 1. **Java 连接 MySQL 基础**: - JDBC(Java Database ...

    SpringJDBCStruts实现产品列表;增加产品(上传图片),java国际化

    在产品列表展示功能中,我们可以利用Spring JDBC的查询方法,如`queryForList`或`queryForObject`,从数据库获取产品信息,并将其绑定到JavaBean上,再通过Struts传递到视图层显示。 Struts是一个基于MVC(模型-...

    JavaEE企业级开发SSM框架题库及答案.docx

    **解析:** JdbcTemplate提供了多种`query()`方法,用于执行SQL查询并处理结果集。选项分析如下: - A. 描述正确,`query(String sql, RowMapper rowMapper)`用于执行SQL查询,并通过`RowMapper`返回一个`List`类型的...

    千锋最新版spring6.0框架GA版详解.pdf

    jdbcTemplate提供了多种方法,用于执行查询、更新等操作。 4. **使用jdbcTemplate进行数据库操作** 示例:使用jdbcTemplate执行增删改查等操作。 #### 九、面向切面编程(AOP) 1. **概念** AOP是一种编程...

Global site tag (gtag.js) - Google Analytics