JFinal与bootstrap实现简单的增删改功能

本示例是在idea下实现的。

1、新建一个项目jfinal-demo

2、将必要的jar包拷贝到lib下面(WEB-INF下没有lib目录,自己新建一个lib目录即可);

3、新建一个包,包名可以自己取,com.demo;然后在这个包下面新建一个DemoConfig类,在类中添加如下代码

package com.demo;

import com.demo.controller.IndexController;
import com.demo.controller.UserController;

import com.demo.model.User;
import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.render.ViewType;

/**
 * @作者 Rainbow 创建时间 2016/3/25 16:12
 * 恒之贵,何必三更起五更睡;最无益,只怕一日曝十日寒!!
 */
public class DemoConfig extends JFinalConfig {
    @Override
    public void configConstant(Constants me) {
        PropKit.use("config.properties");
        me.setBaseViewPath("/template");
        me.setDevMode(PropKit.getBoolean("devMode", true));
        me.setViewType(ViewType.JSP);

    }

    @Override
    public void configRoute(Routes me) {
        me.add("/", IndexController.class);
        me.add("/user", UserController.class);
    }

    @Override
    public void configPlugin(Plugins me) {
//加载数据源
        C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
        me.add(c3p0Plugin);

        ActiveRecordPlugin activeRecordPlugin = new ActiveRecordPlugin(c3p0Plugin);
        me.add(activeRecordPlugin);
        activeRecordPlugin.setShowSql(true);
        activeRecordPlugin.addMapping("user",User.class);

    }

    @Override
    public void configInterceptor(Interceptors me) {

    }

    @Override
    public void configHandler(Handlers me) {

    }

    public static void main(String[] args) {
        JFinal.start("web",81,"/",5);
    }
}

4、新建一个Model,名为User

package com.demo.model;

import com.jfinal.plugin.activerecord.Model;

/**
 * @作者 Rainbow 创建时间 2016/3/30 16:12
 * 恒之贵,何必三更起五更睡;最无益,只怕一日曝十日寒!!
 */
public class User extends Model<User> {
    //Model的dao方法
    public static final User userDao = new User();
    //静态常量
    public static final int SEX_MALE = 1;//男
    public static final int SEX_FEMAQL = 2;//女性
}

5、新建一个Controller,名字为UserController

package com.demo.controller;

import com.demo.model.User;
import com.jfinal.core.Controller;

import java.util.List;

/**
 * @作者 Rainbow 创建时间 2016/3/30 16:18
 * 恒之贵,何必三更起五更睡;最无益,只怕一日曝十日寒!!
 */
public class UserController extends Controller {
    /**
     * 直接访问user地址进入list.jsp
     */
    public void index(){
        List<User> users = User.userDao.find("select * from user");
        setAttr("users",users);
        System.out.print("得到的数据是"+users.size()+"条");
        render("list.jsp");
    }
    /**
     * 访问user/form进入from.jsp页面
     */
    public void form(){
Integer id = getParaToInt(0);
        if(id!=null&&id>0){
            setAttr("user",User.userDao.findById(id));
        }
        render("form.jsp");

    }
    /**
     * 提交方法
     */
    public  void submit(){
        User user = getModel(User.class,"user");
        user.save();
        redirect("/user");
    }
    /**
     * 编辑方法
     */
    public void edit(){

        form();
    }
    /**
     * 删除方法
     */
    public void del(){
        User.userDao.deleteById(getPara(0));
        redirect("/user");
    }
    /**
     * 更新方法
     */
    public void update(){
        User user = getModel(User.class,"user");
        user.update();
        redirect("/user");
    }
}

6、在src路径下面新建一个连接数据库的文件,名字为config.properties

jdbcUrl = jdbc:mysql://localhost:3306/jfinal_demo?characterEncoding=utf8
user = root
password =
devMode = true

7、在src目录下新建一个log4g.properties

log4j.rootLogger=WARN, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Output to the File
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=F/jfinal-demo.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

8、在web.xml文件中添加如下代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <filter>
        <filter-name>jfinal</filter-name>
        <filter-class>com.jfinal.core.JFinalFilter</filter-class>
        <init-param>
            <param-name>configClass</param-name>
            <param-value>com.demo.DemoConfig</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>jfinal</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

9、在web目录下新建一个文件夹路径template/user

在user下新建两个jsp文件,一个是form.jsp,一个是list.jsp

form.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2016/3/26
  Time: 10:17
  To change this template use File | Settings | File Templates.
--%>

<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="UTF-8" %>

<link rel="stylesheet" type="text/css" href="/bootstrap/css/bootstrap.css">
<html>
<head>
    <title>用户注册</title>

</head>
<body>
<div id="main" class="container">
    <div class="row">
        <div class="col-lg-6 col-sm-6 col-md-6">

<form action="${user==null?'/user/submit':'/user/update'}" method="post">
    <input type="hidden" name="user.id" value="${user.id}">
    <div class="form-group">
        <label>用户名</label>
        <input type="text" name="user.username"  value="${user.username}" class="form-control" placeholder="请输入用户名">
    </div>
    <div class="form-group">
        <label>年龄</label>
        <input type="text" name="user.age"value="${user.age}" class="form-control" placeholder="请输年龄">
    </div>
    <div class="form-group">
        <label>性别</label>
        <div class="radio-inline">
        <input type="radio" name="user.sex"<c:if test="${user.sex!=null && user.sex==1}">checked="checked" </c:if>value="1">男
    </div>
    <div class="radio-inline">
        <input type="radio"name="user.sex"<c:if test="${user.sex!=null && user.sex==2}">checked="checked" </c:if> value="2">女
    </div>
    </div>
    <div class="form-group">
        <label>备注</label>
        <textarea name="user.remark" value="${user.remark}" style="height: 70px" class="form-control"  placeholder="请输入备注">${user.remark}</textarea>
    </div>
    <div style="text-align: center" >
        <button type="submit" class="btn btn-primary" style="width: 120px">提交</button>
    </div>
</form>
        </div>
    </div>
</div>
</body>
</html>

list.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2016/3/25
  Time: 17:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
    <title>用户列表</title>
</head>
<link rel="stylesheet" type="text/css" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/jquery-2.2.2.js"></script>
<script src="/bootstrap/js/bootstrap.min.js"></script>
<body>
<div class="pull-left">
    <a href="/user/form" class="btn bg-primary">新增用户</a>

</div>
<table class="table table-bordered table-hover">
    <thead>
    <tr>
        <th colspan="5" align="center">用户信息表</th>
    </tr>
    <tr>
        <th>用户ID</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>用户描述</th><th>操作</th>
    </tr>
    </thead>
    <tbody>
    <c:forEach items="${users}" var="user">
    <tr>
        <td>${user.id}</td> <td>${user.username}</td> <td>${user.sex}</td> <td>${user.age}</td> <td>${user.remark}</td>
        <td><a class="btn btn-primary btn-sm" href="/user/edit/${user.id}">修改</a>  <a class="btn btn-danger btn-sm" href="/user/del/${user.id}">删除</a></td>
    </tr>
    </c:forEach>
    </tbody>
</table>

</body>
</html>

10、在数据库中新建表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(20) DEFAULT NULL,
  `age` int(5) DEFAULT NULL,
  `sex` int(2) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

运行方式,本列采用jetty运行,最好使用这种方式运行,因为这种方式比较简单,如果你采用tomcat等运行,请先删除lib中的jetty这个包

点击idea右上角

点击左侧加号,添加一个运行服务

然后点击main class后面的浏览

会出现之前建立的DemoConfig,这个类,将它添加进去即可

然后点击OK即可。

运行项目:

进入DemoConfig这个文件中,直接右键点击直接run即可。或者是点击右上角的运行也可

如果出现如下提示,说明启动成功。

在浏览器中输入localhost/user即可出现如下界面

本例使用了bootstrap,所以在界面中先引入bootstrap.css样式文件

如果需要源码的请与我联系,小弟我也是刚开始学习,有很多的不足,望大家提出问题一起交流学习。如果有运行失败的请与我联系QQ:8836908728

时间: 2024-11-12 19:54:26

JFinal与bootstrap实现简单的增删改功能的相关文章

vue 简单的增删改功能

刚开始学习vue ,简单的练习了一下,就写了一个简单的dome ,里面包括 增加,删除 ,修改功能 . <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable

Mybatis使用之简单的增删改查

Mybatis使用之简单的增删改查 一:简介 主要记录最简单的数据的增删改查.下一章会有各个操作详细一点的配置说明.以Author表为例(见上一博客).Author表没有关联任何其他表.也没有特殊字段. 二:映射规则 2.1.映射文件中的sql方法与对应的XxxMapper接口中的方法映射规则: a)映射文件的namespace的值是XxxMapper接口的全限定名.即包名+接口名称 b)映射文件中表示增删改查的标签(select.insert.delete.update)的id的值是接口中方法

EF5(6) 简单三层 增删改查

1:项目结构 2:每层添加对其他层的引用,这里我们把除了Web层之外的所有的层生成的文件都放到解决方案下的Library文件夹下,然后每个项目分别来引用里面的dll项目文件. 我们在Model项目上,右键属性->生成-> 在下面的输出里面,选择上一级的 Library文件夹 2.2 我们调整项目的生成顺序 ,在解决方案或者是任意项目上右键,选择 生成依赖项,调整各个项目的依赖,这样的目的就是调整项目的生成顺序. 注意,这里你选择依赖项,并没有给项目与项目之间增加了dll的引用,只是单纯的修改了

通过JDBC进行简单的增删改查

通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "

entity framework—简单的增删改查

应用程序对数据库执行CRUD时,通过entity framework方式,实际上是对DbContext的操作,DbContext是EF的入口,DbContext拿到对应的消息(CRUD)后,通过ORM中的Mapping来将对象O映射成数据库中的关系R. 下面就简单的实现一下利用entity framework实现简单的增删改查.首先要说明的是我已经建立了在解决方案中映射了数据库中表"Customer".所有的操作都是针对这张表. 1.增加 Customer customer = new

MyBatis学习--简单的增删改查

jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] args) { 2 Connection connection = null; 3 PreparedStatement preparedStatement = null; 4 ResultSet resultSet = null; 5 6 try { 7 //加载数据库驱动 8 Class.forName

通过JDBC进行简单的增删改查(以MySQL为例) 目录

通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)