JFinal简单的增删改查 完全没问题启动

拿我自身简单的增删改查来做笔记 也是拿官网jboot来做


项目结构

在这里插入图片描述

连接数据库

jboot.properties:
其中jbootdemo为我的数据库库名 下面依次是账号和密码

jboot.datasource.type = mysql
jboot.datasource.url = jdbc:mysql://127.0.0.1:3306/jbootdemo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
jboot.datasource.user = root 
jboot.datasource.password =root

一、使用自动代码生成器生成以后

(自动代码在jboot官网去复制 但最后是四个参数或者去看我另一篇博客有详细介绍)

二、获取数据库数据

User是数据库User表 userService这些都是自动代码生成好了的
findAll(); 查找全部数据

public void index() {
//        int page=getParaToInt("page",1);
//        Page<User> userPage=userService.paginate(page,10);
       List<User> list = userService.findAll();
       setAttr("pageData",list);
       render("/user.html");
   }

三、html文件进行展示

for-in循环遍历 其中id和login_name要跟数据库键值那要一样
#()进行输出里面是表达式

#for(user : pageData )
    <tr>
        <td>#(user.id)</td>
        <td>#(user.login_name)</td>
        <td>#(user.password)</td>
        <td><a href="/user/add?id=#(user.id)">修改</a> </td>
        <td><a href="/user/del?id=#(user.id)">删除</a> </td>
    </tr>
    #end

四、添加

从html提交数据到这个页面 然后获取数据 创建数据库对象 进行数据库操作 然后保存 进行重定向这个类
doSave() 方法的主要作用是接收数据、把数据保存到数据库、然后跳转到 /user 这个页面去。

public void doSave() {
    String loginName = getPara("login_name");
    String password = getPara("password");

    User user = new User();
    user.setLoginName(loginName);
    user.setPassword(password);

    user.save();

    redirect("/user");
}

五、修改

修改然后获取到修改的ID值 然后判断是否大于0 进行setter赋值

public void add() {
    Long id = getParaToInt("id", 0L);
    if (id > 0) { //有id ,说明有数据提交过来,用来做修改的标识。
        setAttr("id", id);
    }
    render("/add.html");
}

渲染add。html然后指向到和这个保存到数据库的操作
判断传过来的值是否大于0 因为修改是保存其ID的情况下的 而添加是不需写ID值的 因为数据库是递增的。

   public void doSave(){
        //获取request值

        String  LoginName=getPara("login_name");
        String  Password=getPara("password");
        int  id=getParaToInt("id",0);
        //进行对数据库的操作
        User user=new User();
        user.setLoginName(LoginName);
        user.setPassword(Password);

        if(id>0){  //说明是更新
            user.setId(id);
            user.update();
        }else{   //说明是新增
            user.save();
        }
        //保存
//        user.save();
        //重定向到这个index()方法 进行展示
        redirect("/user");
    }

六、删除

 public void del(){
        long id = getParaToLong("id",0l);
        userService.deleteById(id);
        redirect("/user");
    }

七、全部代码:

UserController类:

@RequestMapping("/user")
public class UserController extends JbootController {

@Inject
private UserService userService;
    public void index() {

//        int page=getParaToInt("page",1);
//        Page<User> userPage=userService.paginate(page,10); 这里是分页的操作
        List<User> list = userService.findAll();
        setAttr("pageData",list);
        render("/user.html");
    }


    public void doSave(){
        //获取request值

        String  LoginName=getPara("login_name");
        String  Password=getPara("password");
        int  id=getParaToInt("id",0);
        //进行对数据库的操作
        User user=new User();
        user.setLoginName(LoginName);
        user.setPassword(Password);

        if(id>0){  //说明是更新
            user.setId(id);
            user.update();
        }else{   //说明是新增
            user.save();
        }
        //重定向到这个index()方法 进行展示
        redirect("/user");
    }


    public void add(){
        int id=getParaToInt("id",0);
        //用于判断
        if(id>0){   //有id,说明有数据提交过来,用来提交做修改的标识
            setAttr("id",id);
        }
        render("/add.html");
    }


    public void del(){
        long id = getParaToLong("id",0l);
        userService.deleteById(id);
        redirect("/user");
    }

User.html:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table >
    <tr>
        <th>ID</th>
        <th>登录名</th>
        <th>密码</th>
        <th>操作</th>
    </tr>
    #for(user : pageData )
    <tr>
        <td>#(user.id)</td>
        <td>#(user.login_name)</td>
        <td>#(user.password)</td>
        <td><a href="/user/add?id=#(user.id)">修改</a> </td>
        <td><a href="/user/del?id=#(user.id)">删除</a> </td>
    </tr>
    #end
</table>
<p>表单提交数据</p>
<form action="/user/doSave" method="post">
    登录名: <input type="text" name="login_name"> <br/>
    密码: <input type="text" name="password"> <br/>
    <input type="submit" value="提交数据">
</form>
</body>
</html>

add.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>更新修改</title>
</head>
<body>
<form action="/user/doSave" method="post">
    <input type="hidden" name="id" value="#(id ??)">
    登录名: <input type="text" name="login_name"> <br/>
    密码: <input type="text" name="password"> <br/>
    <input type="submit" value="提交数据">
</form>
</body>
</html>

其他的应该没得啥子了 重要的是代码生成器生成的
在这里插入图片描述


这里再补充一点就是在一个类上加入@RequestMapping("xx")就是路由的作用 默认是xx/index如果是其他方法是xx/index/methodName

补充: 其中选择一个启动类:

public class jbootDemoApp extends Controller {
    public static void main(String[] args) {
        JbootApplication.run(args);
    }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值