首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

一个SQL查询操作的方法

2012-04-24 
求助一个SQL查询操作的方法马上就答辩了,项目中遇到个问题,是android项目,用的SQLite数据库。现在有个数据

求助一个SQL查询操作的方法
马上就答辩了,项目中遇到个问题,是android项目,用的SQLite数据库。现在有个数据库的方法不会写,具体内容是:通过表中的name字段,查出对应的phonenumber字段。数据库方法不会写,求助一下。
我写了个方法,想让他传进sql语句,就返回该name的phonenumber,帮忙解答下,这么写对嘛
/*
* 操作数据库对象
*/
private SQLiteDatabase mDataBase;

public String queryName(String sql) {
String count;
if (mDataBase == null) {
return 0;
}
Cursor cursor = mDataBase.rawQuery(sql, null);
count = cursor.getString(0);
cursor.close();
return count;

}

[解决办法]
用JDBC的話,只是驅動部份不一樣

Java code
import java.sql.*;public class Test {  public static void main(String[] args) throws Exception {    Class.forName("org.sqlite.JDBC");    Connection conn =      DriverManager.getConnection("jdbc:sqlite:test.db");    Statement stat = conn.createStatement();    stat.executeUpdate("drop table if exists people;");    stat.executeUpdate("create table people (name, occupation);");    PreparedStatement prep = conn.prepareStatement(      "insert into people values (?, ?);");    prep.setString(1, "Gandhi");    prep.setString(2, "politics");    prep.addBatch();    prep.setString(1, "Turing");    prep.setString(2, "computers");    prep.addBatch();    prep.setString(1, "Wittgenstein");    prep.setString(2, "smartypants");    prep.addBatch();    conn.setAutoCommit(false);    prep.executeBatch();    conn.setAutoCommit(true);    ResultSet rs = stat.executeQuery("select * from people;");    while (rs.next()) {      System.out.println("name = " + rs.getString("name"));      System.out.println("job = " + rs.getString("occupation"));    }    rs.close();    conn.close();  }}
[解决办法]
不好意思,对具体操作并不熟悉,只是对SQL有所了解而已。

大致类似于:
public String getPhoneByName(String pName) {
String sql = "Select phonenumber From TABLENAME Where name='" + pName + "'";
String phonenumber;
if (mDataBase == null) {
return 0;
}

Cursor cursor = db.rawQuery(sql, null); 
while (cursor.moveToNext()) { 
phonenumber = cursor.getString(0); //获取第一列的值,第一列的索引从0开始 

cursor.close(); 
db.close(); 
return phonenumber;
}


参考下吧:
http://www.javaask.com/mobile/android/2011/1116/9180.html
[解决办法]
Cursor c = mDataBase.rawQuery(sql, null);
if(c.moveToFirst()){
for(int i=0;i!=c.getCount();i++){
c.move(i);
phonenumber = c.getString(0);
}
}
[解决办法]
安卓上面注入漏洞,这个好玩。
不过说实在的,要是PHONENUMBER由用户输入还真可能存在。

热点排行