小妹前端一枚,CSDN新人,分不多,请见谅。
现在在自学前后台交互。
现在采用的是ajax调用的方法,json文件是自己写的假数据。
$.ajax({
url:”json/mood.json”,
dataType:”json”,
type:”get” ,
success:function (data){
。
但是我想自己尝试下搭个数据库,自己调用数据,数据已经写好,并且用java完成了生成json字符串。
package jdbcTest;
import java.sql.*;
import org.json.JSONArray;
import org.json.JSONObject;
public class JDBCtest {
public static void main(String[] args){
// 驱动程序名
String driver = “com.mysql.jdbc.Driver”;
// URL指向要访问的数据库名scutcs
String url = “jdbc:mysql://127.0.0.1:3306/mysql”;
// MySQL配置时的用户名
String user = “root”;
// MySQL配置时的密码
String password = “989531”;
JSONObject jsonObj = new JSONObject();//创建json格式的数据
JSONArray jsonArr = new JSONArray();//json格式的数组
JSONObject jsonObjArr = new JSONObject();
try {
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user, password);
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = “select * from tb2”;
// 结果集
ResultSet rs = statement.executeQuery(sql);
String name = null;
while(rs.next()) {
// 选择sname这列数据
name = rs.getString(“age”);
// 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
// 然后使用GB2312字符集解码指定的字节数组
name = new String(name.getBytes(“ISO-8859-1″),”GB2312”);
jsonObjArr.put(“name”,rs.getString(“username”));
jsonObjArr.put(“age”,name);
jsonArr.put(jsonObjArr);//将json格式的数据放到json格式的数组里
jsonObj.put(“data”, jsonArr);//再将这个json格式的的数组放到最终的json对象中。
}
System.out.println(jsonObj.toString());
rs.close();
conn.close();
} catch(ClassNotFoundException e) {
System.out.println(“Sorry,can`t find the Driver!”);
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
打印出来是
{“data”:[{“age”:”21″,”name”:”kitty”},{“age”:”21″,”name”:”kitty”},{“age”:”21″,”name”:”kitty”}]}
,但是下一步我就不会做了,这个java类包我要怎么用呢?怎么生成前端解析的json呢?网上查了很多资料,有说用map的,有说直接就可以get解析的。但是查了很多我很迷糊呀,因为java我只会一点点,另外我看用ajax的时候,路径都写成相对的,但是现在我的html文件包是放在d://web文件夹里的,而我的这个java程序是放在d://eclipse里面的,要怎么调用呢?网上还有人说后台通过servlet把数据抛到服务器,然后前端来获取。是这样吗?急求高手解答!感激不尽~