Java 从数据库获取数据并存储在arraylist中的程序
ConnectDB(类名)Java 从数据库获取数据并存储在arraylist中的程序,java,Java,ConnectDB(类名) package com.apt.JDBC; 导入java.sql.*; 导入java.util.ArrayList; 导入java.util.Collections; 公共类连接数据库{ //JDBC驱动程序名称和数据库URL 静态最终字符串JDBC_DRIVER=“com.mysql.JDBC.DRIVER”; 静态最终字符串DB_URL=“jdbc:mysql://mydb/TECH_TEST_DB"; //数据库凭据 静态最终字符串USER=“”; 静态最终字符
package com.apt.JDBC;
导入java.sql.*;
导入java.util.ArrayList;
导入java.util.Collections;
公共类连接数据库{
//JDBC驱动程序名称和数据库URL
静态最终字符串JDBC_DRIVER=“com.mysql.JDBC.DRIVER”;
静态最终字符串DB_URL=“jdbc:mysql://mydb/TECH_TEST_DB";
//数据库凭据
静态最终字符串USER=“”;
静态最终字符串传递=”;
公共静态void main(字符串[]args){
连接conn=null;
语句stmt=null;
Mjcet-m;
试一试{
//步骤2:注册JDBC驱动程序
Class.forName(“com.mysql.jdbc.Driver”);
//步骤3:打开连接
System.out.println(“连接到数据库…”);
conn=DriverManager.getConnection(DB_URL,USER,PASS);
//步骤4:执行查询
System.out.println(“创建语句…”);
stmt=conn.createStatement();
字符串sql;
sql=“从MJCET中选择*”;
结果集rs=stmt.executeQuery(sql);
ArrayList mj=新的ArrayList();
m=新的Mjcet(0);
while(rs.next()){
//按列名检索
m、 setId(rs.getInt(“Empid”);
m、 设置(rs.getInt(“年龄”);
m、 setName(rs.getString(“Name”);
m、 固定工资(卢比“工资”);
mj.加上(m);
对于(Mjcet str:mj){
系统输出打印项次(str);
}
//集合。排序(mj);
}
rs.close();
stmt.close();
康涅狄格州关闭();
}捕获(SQLSE异常){
//处理JDBC的错误
se.printStackTrace();
}捕获(例外e){
//处理Class.forName的错误
e、 printStackTrace();
}最后{
//最后是用于关闭资源的块
试一试{
如果(stmt!=null)
stmt.close();
}捕获(SQLException se2){
}//我们无能为力
试一试{
如果(conn!=null)
康涅狄格州关闭();
}捕获(SQLSE异常){
se.printStackTrace();
}//结束最后一次尝试
}//结束尝试
System.out.println(“再见!”);
}//端干管
}//第一个例子结束
Mjcet.java
包com.apt.JDBC;
公共类Mjcet//
{
私人互联网;
私人薪酬;
私有字符串名称;
私有int-id;
公共Mjcet(整数年龄、整数工资、字符串名称、整数id){
超级();
这个。年龄=年龄;
这个。薪水=薪水;
this.name=名称;
this.id=id;
}
Mjcet(国际年龄){
这个。年龄=年龄;
}
公共整数getAge(){
回归年龄;
}
公共无效设置(整数){
这个。年龄=年龄;
}
public int getSalary(){
返回工资;
}
公共无效设置薪资(内部薪资){
这个。薪水=薪水;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共int getId(){
返回id;
}
公共无效集合id(内部id){
this.id=id;
}
//公共国际比较(Mjcet m1){
//int compareid=(Mjcet)m1.getId();
/*升序*/
//返回此.id-compareid;
//}
@凌驾
公共字符串toString(){
返回字符串。格式(“%d\t%s\t%d\t%d”,年龄、姓名、id、薪水);
}
}
以上是我的代码
我的输出有一个错误。基本上我得到了多次输出,例如我的emp id是1,它被打印了1次,当我的emp id是2,它被打印了2次,以此类推。。。。。。。请帮我解决这个问题。您的问题是在循环外部实例化“m”,您应该在循环内部执行此操作,否则每次迭代都使用相同的对象 需要。main(..)在哪里?您好,欢迎来到Stack Overflow,请花点时间浏览以了解您在这里的道路(以及赢得您的第一个徽章),阅读如何创建并检查,以增加获得反馈和有用答案的机会。
package com.apt.JDBC;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collections;
public class ConnectDB {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://mydb/TECH_TEST_DB";
// Database credentials
static final String USER = "";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
Mjcet m ;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql="SELECT * FROM MJCET";
ResultSet rs = stmt.executeQuery(sql);
ArrayList<Mjcet> mj = new ArrayList<Mjcet>();
m = new Mjcet(0);
while(rs.next()){
//Retrieve by column name
m.setId(rs.getInt("Empid"));
m.setAge(rs.getInt("Age"));
m.setName(rs.getString("Name"));
m.setSalary(rs.getInt("Salary"));
mj.add(m);
for(Mjcet str: mj){
System.out.println(str);
}
// Collections.sort(mj);
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end FirstExample
Mjcet.java
package com.apt.JDBC;
public class Mjcet //implements Comparable<Mjcet>
{
private int age;
private int salary;
private String name;
private int id;
public Mjcet(int age, int salary, String name, int id) {
super();
this.age = age;
this.salary = salary;
this.name = name;
this.id = id;
}
Mjcet(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// public int compareTo(Mjcet m1) {
// int compareid=((Mjcet)m1).getId();
/* For Ascending order*/
// return this.id-compareid;
//}
@Override
public String toString() {
return String.format("%d\t%s\t%d\t%d", age,name,id,salary);
}
}