工具:eclipseIDE
- 建立Maven文件,选择建立webapp
- 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>
- 在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
- 在src/main/下创建包:
- 创建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
}
}
- 创建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是端口,自己随便设,前面的目录是项目的根目录,这是我的
}
- 在刚才创建的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
}
}
- 以下是我的整个项目的目录:
- 在HelloController 类中右击->Run As->Java Application,服务器启动成功:
- 在网页中输入以下地址(这里的端口号要根据自己设的来):
http://localhost:810/demohttp://localhost:810/demo
默认访问index方法,显示helloWord,成功