基于mongoDB、jfinal开发javaWeb项目简单案例

版权声明:请点击关注 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

效果如下

测试成功!!!!!!!

猜你喜欢

转载自blog.csdn.net/weixin_42914677/article/details/85099398