使用基本的jdbc连接mysql,获取数据。
创建实体类user:
package com.json; public class user { private int id; private String username; public int getId() { return id; } public void setId(int id) { this.id = id; } private String password; private score score; public user() { super(); } public user(String username, String password, com.json.score score) { super(); this.username = username; this.password = password; this.score = score; } public score getScore() { return score; } public void setScore(score score) { this.score = score; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
创建utildao工具类:
package com.json; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class utildao { public static Connection getConnection(){ Connection conn=null; String url="jdbc:mysql://localhost:3306/test"; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection(url,"用户名","密码"); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("数据库驱动加载出错"); }catch (SQLException e) { e.printStackTrace(); System.out.println("数据库出错"); } return conn; } public static void close(ResultSet rs,PreparedStatement p,Connection conn){ try { rs.close(); p.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); System.out.println("数据库关闭出错"); } } public static void main(String[] args) { System.out.println(utildao.getConnection()); } }
创建查询:
package com.json; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class jsonjiexi { public static ResultSet getjson(){ Connection conn=null; PreparedStatement p=null; ResultSet rs=null; try { conn=utildao.getConnection(); String sql="select * from userone"; p=conn.prepareStatement(sql); rs=p.executeQuery(); while(rs.next()){ //utildao.close(rs, p, conn); //System.out.println("查询结束,关闭"); return rs; } } catch (SQLException e) { e.printStackTrace(); } return rs; } }
最后main方法类:
package com.json; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class huoqujson { public static void main(String[] args) throws SQLException { //注释掉此段为,将jdbc获取的resultset转换为list集合 /*List list=new ArrayList(); ResultSet rs=jsonjiexi.getjson(); ResultSetMetaData md=rs.getMetaData(); int num=md.getColumnCount(); while(rs.next()){ Map rowData=new HashMap(); for(int i=1;i<=num;i++){ rowData.put(md.getColumnName(i),rs.getObject(i)); } list.add(rowData); } System.out.println(list.toString());*/ //这段实现了将jdbc获取的数据,赋值给实体类,添加进List,最后转换为jsonarray user us=new user(); List<user> list=new ArrayList<user>(); ResultSet rs=jsonjiexi.getjson(); while(rs.next()){ us.setId(rs.getInt("id")); us.setUsername(rs.getString("name")); us.setPassword(rs.getString("pwd")); System.out.println(us.getId()+":"+us.getUsername()+":"+us.getPassword()); } list.add(us); JSONArray array=JSONArray.fromObject(list); System.out.println(array.toString()); } }
编写期间遇到的错误,在Main方法执行之后,由于没有导入某些jar包报的错误:
commons-lang-2.4.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
commons-logging-1.1.1.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
commons-beanutils-1.8.0.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
commons-collections.jar 不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
ezmorph-1.0.4.jar不加这个包
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
json-lib-2.3-jdk15.jar不加这个包
java.lang.NoClassDefFoundError: net/sf/json/JSONObject