版权声明:请点击关注 https://blog.csdn.net/weixin_42914677/article/details/85099398
项目开发前,先准备好eclipse,mongodb包、jquery、jfinal包
下载地址:https://github.com/sparkxgd/jfinal_mongodb.git
步骤1:新建javaweb工程
打开eclipse,建立web工程
将mongodb包、jfinal包复制到WebContent目录下的WEB-INF下的lib目录。
步骤2:修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>hbase05</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.Config</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
步骤3:编写java类
1、在src目录下新建com目录
2、在com目录下新建MongoPlugin类
MongoPlugin.java
package com;
import com.jfinal.plugin.IPlugin;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
public class MongoPlugin implements IPlugin{
private String host;
private int port;
private String dbname;
MongoClient mongoClient;
private String tableName ="student";
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getDbname() {
return dbname;
}
public void setDbname(String dbname) {
this.dbname = dbname;
}
@Override
public boolean start() {
// 连接到 mongodb 服务
try {
mongoClient = new MongoClient(host,port);
// 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase(dbname);
MongoDB.collection =mongoDatabase.getCollection(tableName);;
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
@Override
public boolean stop() {
if(mongoClient!=null) {
mongoClient.close();
}
return true;
}
}
3、在com目录下新建MongoDB类
MongoDB.java
package com;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.UpdateResult;
public class MongoDB {
public static MongoCollection<Document> collection;
//插入文档
/**
* 1. 创建文档 org.bson.Document 参数为key-value的格�?
* 2. 创建文档集合List<Document>
* 3. 将文档集合插入数据库集合�? mongoCollection.insertMany(List<Document>) 插入单个文档可以�? mongoCollection.insertOne(Document)
* */
public static boolean add(Document document) {
collection.insertOne(document);
return true;
}
public static boolean add(String no,String name,String sex,String cls,String age) {
Document doc=new Document();
doc.append("no", no);
doc.append("name", name);
doc.append("sex", sex);
doc.append("cls", cls);
doc.append("age", age);
collection.insertOne(doc);
return true;
}
/**
* 删除
* @param fieldName
* @param value
* @return
*/
public static boolean delOne(String fieldName, Object value) {
collection.deleteOne(Filters.eq(fieldName, value));
return true;
}
//�?索所有文�?
/**
* 1. 获取迭代器FindIterable<Document>
* 2. 获取游标MongoCursor<Document>
* 3. 通过游标遍历�?索出的文档集�?
* */
public static List<Document> find() {
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> cousor=findIterable.iterator();
List<Document> dataList=new ArrayList<Document>();
while(cousor.hasNext()){
dataList.add(cousor.next());
}
return dataList;
}
public static UpdateResult update(String fieldName, Object value,String upatefieldName, Object updatevalue) {
//更新文档 将文档中likes=100的文档修改为likes=200
UpdateResult r=collection.updateMany(Filters.eq(fieldName, 100), new Document("$set",new Document(upatefieldName,updatevalue)));
return r;
}
}
4、在com目录下新建HelloController类
HelloController.java
package com;
import java.util.List;
import org.bson.Document;
import com.jfinal.core.Controller;
public class HelloController extends Controller{
public void index() {
render("index.html");
}
public void getSudents() {
List<Document> list=MongoDB.find();
setAttr("list", list);
renderJson();
}
public void openAdd() {
render("add.html");
}
public void save() {
String no=getPara("no");
String name=getPara("name");
String age=getPara("age");
String cls=getPara("cls");
String sex=getPara("sex");
MongoDB.add(no, name, sex, cls, age);
// setAttr("result", 0);
// renderJson();
redirect("/mongo");
}
public void del() {
String no=getPara("no");
MongoDB.delOne("no",no);
// setAttr("result", 0);
// renderJson();
redirect("/mongo");
}
}
5、在com目录下新建Config类
Config.java
package com;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.template.Engine;
public class Config extends JFinalConfig{
@Override
public void configConstant(Constants me) {
me.setDevMode(true);
}
@Override
public void configRoute(Routes me) {
me.setBaseViewPath("/WEB-INF");
me.add("/mongo", HelloController.class,"page");
}
@Override
public void configEngine(Engine me) {
}
@Override
public void configPlugin(Plugins me) {
MongoPlugin mp=new MongoPlugin();
mp.setHost("192.168.1.5");
mp.setPort(27017);
mp.setDbname("kaili");
me.add(mp);
}
@Override
public void configInterceptor(Interceptors me) {
// TODO Auto-generated method stub
}
@Override
public void configHandler(Handlers me) {
// TODO Auto-generated method stub
}
}
6、在com目录下新建Start类
Start.java
package com;
import com.jfinal.core.JFinal;
public class Start {
public static void main(String[] args) {
JFinal.start("WebContent", 8082, "/", 5);
}
}
步骤4:加入jquery插件
在WebContent目录下新建js文件,并将jquery-3.3.1.min.js复制到文件夹中,如图下
步骤5:新建html页面
在WebContent下的WEB-INF下新建page文件夹,并新建index.html和add.html代码如下
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息管理</title>
<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
<style type="text/css">
table tr,td{
border: 1px solid;
}
</style>
<script type="text/javascript">
$.ajax({
url : "getSudents",
data : {key:"no"},
success : function(data) {
var d = data.list;
setData(d);
}
});
function setData(data) {
var arr=new Array();
$.each(data,function(k,v){
arr.push("<tr>");
arr.push("<td>");
arr.push(v.no);
arr.push("</td>");
arr.push("<td>");
arr.push(v.name);
arr.push("</td>");
arr.push("<td>");
arr.push(v.cls);
arr.push("</td>");
arr.push("<td>");
arr.push(v.sex);
arr.push("</td>");
arr.push("<td>");
arr.push(v.age);
arr.push("</td>");
arr.push("<td>");
arr.push("<a href='del?no="+v.no+"'>删除</a>");
arr.push("</td>");
arr.push("</tr>");
})
var html=arr.join("");
$("table tbody").append(html);
}
</script>
</head>
<body>
<a href="openAdd">添加信息</a>
<hr>
<table>
<caption>mongodb学生信息管理</caption>
<thead>
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>性别</td>
<td>年龄</td>
<td>操作</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
add.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加</title>
</head>
<body>
<form action="save" method="post">
学号:<input type="text" name="no"><br>
姓名:<input type="text" name="name"><br>
班级:<input type="text" name="cls"><br>
性别:<input type="text" name="sex"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
步骤6:启动系统,测试
右键运行start.java
然后打开浏览器测试,
输入:http://localhost:8082/mongo
效果如下
测试成功!!!!!!!