java - 如何使用 JDBC 在 ListView 或 TableView 中显示来自 SQL Server 的数据
问题描述
我已使用 JTDS v.1.2.8 连接到我的 SQL Server
我是 JDBC 插件的新手,我正在尝试弄清楚。我也确实在论坛上查看了相关的问题/答案,但我找不到,所以我在这里问:)
我想要实现的是我想以更好的方式显示从 SQL 数据库中获取的数据,例如 listView 或 tableView。
这是我目前正在使用的代码,我真的不知道如何使它工作
Class Model
public class Model
{
public String nom;
public String prenom;
public String mail;
public String tel;
public String date;
public String caissier;
public String vendeur;
public String estheticienne;;
// Getters and Setters omitted
}
///////////////////////////////////////// /////////////////////
public class Magasin extends AppCompatActivity {
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_magasin);
Button btn = (Button) findViewById(R.id.btnData);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
GetData retrieveData = new GetData();
retrieveData.execute("");
}
});
}
private class GetData extends AsyncTask<String,String,String> {
String msg = "";
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://" +
DbStrings.DATABASE_URL + "/" + DbStrings.DATABASE_NAME;
@Override
protected void onPreExecute(){
}
@Override
protected String doInBackground(String... params){
Connection conn = null;
Statement stmt = null;
List<Model> list = new ArrayList<Model>();
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DbStrings.USERNAME, DbStrings.PASSWORD);
stmt = conn.createStatement();
String sql = "SELECT * FROM login";
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()){
Model utilisateur = new Model();
utilisateur.prenom = rs.getString("prenom");
utilisateur.nom = rs.getString("nom");
utilisateur.mail = rs.getString("email");
utilisateur.tel = rs.getString("tel");
utilisateur.date = rs.getString("date");
utilisateur.caissier = rs.getString("caissiere");
utilisateur.vendeur = rs.getString("vendeuse");
utilisateur.estheticienne = rs.getString("estheticienne");
list.add(utilisateur);
}
msg = "Données récupérées !";
rs.close();
stmt.close();
conn.close();
} catch (SQLException connError){
msg = "An exception was thrown for JDBC.";
connError.printStackTrace();
} catch (ClassNotFoundException e) {
msg = "A class not found exception was thrown.";
e.printStackTrace();
}
return msg;
}
}
}
非常感谢任何评论或回答指出我的解决方案。
谢谢你的时间。
解决方案
您应该创建一个带有内容行的 ListView,并在带有标题行的布局之上。并在您将用来表示 ListView 上的每一行的布局上进行列划分。
另一种方法是在滚动中创建一个 TableLayout!
推荐阅读
- python - 如何为 Keras 实现 Beholder(Tensorboard 插件)?
- python - 如何使用 PySpark 用组的聚合填充空值
- html - 我正在尝试使用 PERL/CGI 创建一个表单,并且我想在同一个 CGI 文件中处理该表单中引入的数据
- php - 每次都出现 XAMPP 访问禁止错误
- c# - asp:ListItem 项在 CheckBoxList 中自动检查
- java - 在开关中使用用户输入
- c - 如何编写继续程序;使用 C
- reactjs - 如何防止盖茨比图像在每次重新加载时模糊徽标?
- artificial-intelligence - 如何将 UNO 建模为 POMDP
- java - 如何制作一个在 main 方法中保留总计的函数?