JFinal入门

工具:eclipseIDE

  1. 建立Maven文件,选择建立webapp
  2. pom.xml中添加以下依赖:
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.29</version>
    </dependency>
    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jfinal</artifactId>  //jfinal需要的jar包
      <version>2.2</version>
    </dependency>

    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>jetty-server</artifactId> //这里我用的jfinal集成的jetty服务器,支持无需重启服务,建议使用,比Tomcat方便
      <version>8.1.8</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>//数据库驱动包
      <version>8.0.11</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.el/javax.el-api -->
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>//后面都是为了支持jsp视图,加入的包
    <version>3.0.0</version>
</dependency>
<dependency> 
	<groupId>jetty</groupId> 
	<artifactId>jsp</artifactId>
 	<version>2.1-6.0.2</version> 
 </dependency> <dependency>
  	<groupId>jetty</groupId>
  	<artifactId>jsp-api</artifactId>
    <version>2.1-6.0.2</version>
 </dependency>
 <dependency>
  <groupId>jetty</groupId> 
  <artifactId>jetty-util</artifactId>
   <version>6.0.2</version> 
   </dependency> 
   <dependency>
    <groupId>jetty</groupId>
     <artifactId>servlet-api</artifactId>
      <version>2.5-6.0.2</version>
       </dependency>
        <dependency>
         <groupId>ant</groupId> 
         <artifactId>ant</artifactId>
          <version>1.7.0</version>
           </dependency>
  1. 在resources文件下,创建properties文件,以下为代码:
jdbcUrl = jdbc:mysql://localhost/this?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true  //这里的this是数据库名
user = root
password = root
driver=com.mysql.jdbc.Driver
devMode = true
showSql = true
  1. 在src/main/下创建包:
    在这里插入图片描述
  2. 创建Java代码:
    DemoConfig类继承Config类,实现该类的方法,以下为代码:
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;

public class DemoConfig extends JFinalConfig{

	@Override
	public void configConstant(Constants me) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void configRoute(Routes me) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void configPlugin(Plugins me) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void configInterceptor(Interceptors me) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void configHandler(Handlers me) {
		// TODO Auto-generated method stub
		
	}

}
  1. 创建HelloController,实现Controller类,以下为代码:
package demo;

import java.util.List;

import com.jfinal.core.ActionKey;
import com.jfinal.core.Controller;
import com.jfinal.core.JFinal;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;


public class HelloController extends Controller{
	public void index() 
	{ 
		//renderText("Hello index!"); //渲染的文字
		render("index.jsp");   //设置渲染的jsp
	}
	
	public void test() {
		renderText("test!");
	}
	public void save() {
		Record user = new Record().set("name", "Rose").set("password", 22222);
		Db.save("user", user);
		findUser();
	}
	public void delete() {
			Db.deleteById("news",3);
			findNews();
	}
	public void update() {
		Record ins = Db.findById("news", 3).set("date", "2018-10-10");
		Db.update("news", ins);
		findNews();
	}
	public void findUser() {
		List<Record> users = Db.find("SELECT * FROM USER");
		renderJson(users);
	}
	@ActionKey("/news")
	public void findNews(){
       List<Record> instance=Db.find("SELECT * FROM NEWS");
        renderJson(instance);//以json形式渲染到页面
	}
	
	public static void main(String[]args)//入口函数,在这类中运行

	 { JFinal.start("src/main/webapp",810, "/",   
	 5);}    //810是端口,自己随便设,前面的目录是项目的根目录,这是我的
}

  1. 在刚才创建的config类中,加入对数据库的配置读取,和路由映射,以下为代码:
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.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.render.ViewType;


public class DemoConfig extends JFinalConfig{

	@Override
	public void configConstant(Constants me) {
		// TODO Auto-generated method stub
		me.setDevMode(true);
		me.setViewType(ViewType.JSP);
		PropKit.use("config.properties");//我的数据库properties文件
	}

	@Override
	public void configRoute(Routes me) {
		// TODO Auto-generated method stub
		me.add("/demo",HelloController.class,"/jsp");  //这里是因为我创建了一个根目录下的jsp包,用来存放jsp
	}

	@Override
	public void configPlugin(Plugins me) {
		// TODO Auto-generated method stub
		 DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"), PropKit.get("driver"));
	        me.add(druidPlugin);

	        ActiveRecordPlugin activeRecordPlugin = new ActiveRecordPlugin(druidPlugin);
	        //添加与表的映射关系 *******
	       // activeRecordPlugin.addMapping("user", User.class);//这里我用Db+Record模式,所以不用映射
	       // activeRecordPlugin.addMapping("news", News.class);
	        me.add(activeRecordPlugin);
	}

	@Override
	public void configInterceptor(Interceptors me) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void configHandler(Handlers me) {
		// TODO Auto-generated method stub
		
	}

}

  1. 以下是我的整个项目的目录:
    在这里插入图片描述
  2. 在HelloController 类中右击->Run As->Java Application,服务器启动成功:
    在这里插入图片描述
  3. 在网页中输入以下地址(这里的端口号要根据自己设的来):
    http://localhost:810/demohttp://localhost:810/demo
    默认访问index方法,显示helloWord,成功

猜你喜欢

转载自blog.csdn.net/huantianxidi123/article/details/84887624