版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关于Ajax使用json连接数据库问题
1.首先是项目包
2.主要使用Ajax链接sevlet 使用servlet连接数据库 进行传值操作 ```
把写入的代码放入table表格中
<body>
<table>
<thead>
<tr><td>姓名</td><td>年龄</td></tr>
</thead>
<tbody>
</tbody>
</table>
<script type="text/javascript">
$(function(){
$.ajax({
url:"nameServlet",
type:"post",
data:{
},
dataType :"json" ,
success:function(data){
$.each(data,function (i) {
var Stringstr = "" ;
Stringstr = " <tr><td>"+data[i].name+"</td><td>"+data[i].age+"</td></tr>" ;
$("tbody").append(Stringstr);
});
}
});
});
</script>
</body>
3.servlet来连接数据库操作 `使用toJSONString() 转换list集合
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 从数据库中获取数据 并且显示在userList.jsp中
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
nameService name = new nameServiceImpl();
List<nameBean> mans = name.list();
String user = JSON.toJSONString(mans);
out.print(user);
System.out.println(user);
out.flush();
out.close();
}
4.这里使用的是fastjson的jar包
下面是jdbc和baen 的 servle 的代码
这是nameService的代码
package service.impl;
import bean.nameBean;
import service.nameService;
import util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class nameServiceImpl implements nameService {
@Override
public List<nameBean> list() {
List<nameBean> list = new ArrayList<nameBean>();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConn();
String sql = "select * from bookl";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
nameBean be = new nameBean();
be.setName(rs.getString(1));
be.setAge(rs.getString(2));
list.add(be);
}
} catch (Exception e) {
} finally {
DBUtil.close(conn, ps, rs);
}
return list;
}
}
这个是nameserve的代码
package service;
import bean.nameBean;
import java.util.List;
public interface nameService {
//查询数据库内容结果放入list集合
List<nameBean> list() ;
}
bean 和 jdbc代码
package bean;
public class nameBean {
private String name ;
private String age ;
public String getAge() {
return age;
}
public String getName() {
return name;
}
public void setAge(String age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
}
jdbc
package util;
import java.sql.*;
public class DBUtil {
private static String url = "jdbc:sqlserver://localhost:1433;databaseName=Demo";
private static String user = "chen";
private static String pwd = "1";
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConn() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
try {
if (conn != null) {
conn.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
全部代码执行 可直接显示 数据库内容在index jsp 页面中。。。