java用sql语句动态的往表里面添加字段,之后怎么能动态的读写新字段的数据

如题所述

用SQL语句添加表字段:alter table 表名add 字段名 字段类型;
用select name from syscolumns where id=object_id(表名)查找出所有的表字段。然后再使用SELECT 查找到的字段 from 表名。
使用ResultSet动态读取数据库数据。ResultSet 是一个迭代模式的动态连接容器。迭代模式的容器遍历方式:

while(rs.next()){
//循环内容
}
rs.next()返回值是一个布尔值,表示迭代容器中是否还有下一条数据,即在迭代过程中是否已经到结尾。直到迭代集合中再无数据rs.next()返回false;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-08
你说的意思有点不清楚, jdk帮助文档中,有专门可以读出表中字段的类,步骤如下:
ResultSet对象.getMetaData().getColumnCount()就可以得到你的resultset中数据的列数,再调用ResultSet对象.getMetaData().getColumnName(int column) 就可以得指定索引的列的名称。
其实能做到这样的话,你就完全可以在程序当中做能在数据库中做的事了。不知是不是和你的问题,相对应。。。。
第2个回答  2011-11-28
你是指加入新字段后如何访问??追问

恩,读写包括访问,

追答

import java.sql.*;

public class GetConn {
public Connection conn = null; // 创建Connection对象
// 获取数据库连接方法
public Connection getConnection() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 加载数据库驱动
String url = "jdbc:mysql://localhost:3306/MySQL?characterEncoding=gb2312";
String user = "root";
String passWord = "123";
conn = DriverManager.getConnection(
url, user, passWord);
// getConnection()方法参数分别指定连接数据库的URL、用户名和密码
if (conn != null) {
System.out.println("数据库连接成功");
}
} catch (Exception e) {
e.printStackTrace();
}// 异常处理
return conn;// 返回Connection对象
}
// 程序主方法
public static void main(String[] args) {
GetConn getConn = new GetConn(); // 创建GetConn对象
getConn.getConnection(); // 调用连接数据库方法
}
}
这个是数据库链接的方法,然后
GetConn getConn = new GetConn(); // 创建包含有数据库连接类对象
Connection connection = getConn.getConnection(); // 获取数据库连接
// 按英文名称,查询信息
public Dictionary findDictionary(String english) { // 定义数据库查询方法
Dictionary dictionary = null; // 创建与数据表对应的对象
String sql = "select * from tb_dictionary where english like '" + english
+ "'"; // 定义数据查询SQL语句
try {
PreparedStatement statement = connection.prepareStatement(sql); // 创建PreparedStatement对象
ResultSet rest = statement.executeQuery(); // 执行查询SQL语句,获取查询SQL结果集
while (rest.next()) { // 循环遍历查询结果集
dictionary = new Dictionary(); // 创建对象
dictionary.setChinses(rest.getString("chinese")); // 获取结果集中数据
}
} catch (SQLException e) {
e.printStackTrace();
}
return dictionary;
}
这是一个获取数据库内容的方法,你看看吧

相似回答