1. java解析字符串(解析sql语句,得到需要查询显示的字段名)。
在Sql语句前加上SET FMTONLY ON,再执行Sql语句,该设置只将元数据返回给客户端,可以用于测试响应的格式,而不必实际执行查询.有了返回的表结构,还怕得到不到要查询的字段
例:
SET FMTONLY ON;
SELECT f_spbm,f_spmc as '名称' FROM 表1;
SET FMTONLY OFF;
2. java解析sql语句是实现不了的
哈哈,楼主没文化了。这个是需要词法解析和语法解析的。总体的思路是设计一个分词器,按规则将语句进行分词。例如,关键字用1表示,字符串用2表示,当分词到 select时,标识1,分词到'select'时标识为2。然后语法解析器用来分析怎么样的词法组合才合理,需要构造语法树等。
整体来说还是很复杂的,但是是完全可以实现的。
最后推荐个很好的java实现: JavaCC
3. java语句中取得sql中的一个字段的值
......
ResultSet rs = stmt.executeQuery(sql);
String priceType = null;
if(rs.next()) {
priceType = rs.getString("value");
......
}
4. 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;
5. 如何在java获得从sql中查到数据的字段名
JDBC得到结果集 resultSet以后可以得到所有的字段名,字段类型,及数据。建议查看JDK中的API文档,ResultSet这个类。API已经上传。
6. java 怎么用正则表达式解析sql中的表名,已有半成品,求改善
Stringstr="from\s+(.*)\s+where?";
Stringsql="select*fromtable,table2wherea=b";
Patternp=Pattern.compile(str);
Matchermatcher=p.matcher(sql);
while(matcher.find()){
Stringstring=matcher.group(1);
System.out.println(string);
}
7. java 获取SQL查询语句返回的结果
step1:构造连接x0dx0a Class.forName("com.mysql.jdbc.Driver"); x0dx0a Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123"); x0dx0ax0dx0astep2:构造语句x0dx0aString sql = "select username,password from t_user where username=?"; x0dx0aPreparedStatement stmt = con.prepareStatement(sql); x0dx0astmt.setString(1, "zhangshan"); //给SQL的"?"(问号)传值。x0dx0ax0dx0astep3:执行查询x0dx0aResultSet rs = stmt.executeQuery(); //rs就是SQL查询语句返回的结果集x0dx0ax0dx0astep4:处理结果(java 获取SQL查询语句返回的结果)x0dx0a List list = new ArrayList();x0dx0a //遍历结果集,这样写就可以了,就是一个循环,有多少条记录,这里就会循环多少次,x0dx0a //一次就是一条记录,想象一下就像一个表的一条记录x0dx0a //在这里可以做查询出来的数据处理,可以封装成对象之类的(就是把值给它)x0dx0a if(rs.next()) { //遍历结果集,这样写就可以了x0dx0a User u = new User();x0dx0a String username = rs.getString("username"); x0dx0a String address = rs.getString("password "); x0dx0a u.setUsername(username);x0dx0a u.setAddress(address);x0dx0a list.add(u);x0dx0a } x0dx0a //上面这个例子意思是,把每一条记录封装成了一个User对象,然后这些User对象都放存入到了一个listx0dx0ax0dx0astep4:关闭连接等