1. 程式人生 > >java連線資料庫,並把查詢的結果轉換為JSON步驟記錄

java連線資料庫,並把查詢的結果轉換為JSON步驟記錄

myeclipse連線mysql資料庫

下載mysql和myeclipse;-

記錄一下我的myeclipse連線mysql所遇見的問題

1.第一步在myeclipse建立一個java工程

new->java project

2.第二步在工程檔案下建立lib資料夾,匯入mysql的驅動包(還不會在CSDN新增上傳jar包,jar包在我的百度雲盤)

3.在myeclipse裡面建立資料庫連線

在彈出的串列埠選擇new一個新的連線

在這樣設定以後發現報錯了,哈哈。

在URL的後面加上這句話  ?useUnicode=true&characterEncoding=utf8,就可以正常通過了。

接下來在寫一個測試的方法,就可以 測試資料庫的連線功能了

建立表students

這是我的測試功能函式

public class DBUtil {
	private static final String URL="jdbc:mysql://127.0.0.1:3306/weixy?useUnicode=true&characterEncoding=utf8";
	private static final String USER="root";
	private static final String PASSWORD="123456";
	public static void main(String[] args) throws Exception {
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn=(Connection) DriverManager.getConnection(URL, USER, PASSWORD);
		Statement stmt = (Statement) conn.createStatement();
		ResultSet rs=stmt.executeQuery("select * from students where 1=1");
		//將rs轉化為LIST的兩種方法
		//第一種借用bean的方法
//		ArrayList<students> lists=new ArrayList();
//		while(rs.next()){    
////			System.out.println(rs.getString("STU_ID"));
////			System.out.println(rs.getString("STU_NAME"));
//			students stu=new students();
//			stu.setStu_address(rs.getString("STU_ADDRESS"));
//			stu.setStu_age(rs.getString("STU_AGE"));
//			stu.setStu_class(rs.getString("STU_CLASS"));
//			stu.setStu_id(rs.getString("STU_ID"));
//			stu.setStu_name(rs.getString("STU_NAME"));
//			stu.setStu_sex(rs.getString("STU_SEX"));
//			System.out.println(stu.getStu_address());
//			System.out.println(stu.getStu_age());
//			System.out.println(stu.getStu_class());
//			System.out.println(stu.getStu_id());
//			System.out.println(stu.getStu_name());
//			System.out.println(stu.getStu_sex());
//			lists.add(stu);
//		}
		
		
		//第二張方法
		List ls=converList(rs);
		
	}
	private static List converList(ResultSet rs) throws SQLException{
		List list=new ArrayList();
		ResultSetMetaData md=(ResultSetMetaData) rs.getMetaData();
		int colnum=md.getColumnCount();
		while(rs.next()){
			Map<String,String> rowData=new HashMap();
			for(int i=1;i<=colnum;i++){
				rowData.put(md.getColumnName(i).toString(), rs.getObject(i).toString());
				System.out.println(md.getColumnName(i));
				System.out.println(rs.getObject(i).toString());
			}
			list.add(rowData);
		}
		JSONArray json=new JSONArray();
		  json=JSONArray.fromObject(list);  
		System.out.println(json.size());
		return list;
	}
	
}

這是第一種用bean來存放資訊的方法。

public class students {
	 private String stu_id;
	 private String stu_name;
	 private String stu_sex;
	 private String stu_age;
	 private String stu_class;
	 private String stu_address;
	public String getStu_id() {
		return stu_id;
	}
	public String getStu_name() {
		return stu_name;
	}
	public String getStu_sex() {
		return stu_sex;
	}
	public String getStu_age() {
		return stu_age;
	}
	public String getStu_class() {
		return stu_class;
	}
	public String getStu_address() {
		return stu_address;
	}
	public void setStu_id(String stu_id) {
		this.stu_id = stu_id;
	}
	public void setStu_name(String stu_name) {
		this.stu_name = stu_name;
	}
	public void setStu_sex(String stu_sex) {
		this.stu_sex = stu_sex;
	}
	public void setStu_age(String stu_age) {
		this.stu_age = stu_age;
	}
	public void setStu_class(String stu_class) {
		this.stu_class = stu_class;
	}
	public void setStu_address(String stu_address) {
		this.stu_address = stu_address;
	}

}

額,第二張方法是用MAP來存放資訊,並將資訊放入list裡面,再將List轉換乘JSON的格式。這個JSON需要匯入jar包,

執行的結果是

第一次寫可能描述不是很清楚,而且jar沒有上傳,以後需要在進行修改