JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)

1.创建数据库JFinaldb,创建表books。然后插入一条记录。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA546J5a2Q54On54On5ZCD5Luj56CB,size_18,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA546J5a2Q54On54On5ZCD5Luj56CB,size_17,color_FFFFFF,t_70,g_se,x_16

create database JFinalDb;
use JFinalDb;
create table books(id int(10) primary key,name varchar(20),author varchar(20),price float(7,2));
insert into books(id,name,author,price)values('1','安徒生童话','安徒生','23.12');

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第1张图片

2.打开eclipse,创建maven demo,我命名为haha。创建maven项目有困难的移步JFinal 文档、资料、学习、API,jfinal-undertow 下开发

3.修改pom.xml文件,插入依赖。

note:mysql和druid驱动的依赖(最后两个)你加入后如果报错,说明版本不对,需要你修改成你使用的版本。


    
      junit
      junit
      4.11
      test
    
    
    com.jfinal
    jfinal-undertow
    2.8


	

    com.jfinal
    jfinal
    4.9.21

 

        
        
            mysql
            mysql-connector-java
            8.0.11
         
 
	 com.alibaba
	 druid
	 1.0.9
	 
	 

4.在java文件夹下创建如下三个包

config、controller、model

5.在config包里创建DbConfig,注意要继承他的父类JFinalConfig 

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第2张图片

6.同理,在controller包里创建BookController,继承父类Controller

7.在model包下创建类Book,继承Model

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第3张图片

修改

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第4张图片

8.在DbConfig中加入主方法:

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第5张图片

public static void main(String[] args) {
        UndertowServer.start(DbConfig.class, 80, true);
    }

9.DbConfig类中还要修改这些方法(ps:以下这些方法是在你创建类的时候继承父类得来的,你只要找到对应的并修改就好啦!)

public void configConstant(Constants me) {
		me.setDevMode(true); // 配置开发模式,true 值为开发模式
		me.setInjectDependency(true);// 配置依赖注入
	}

public void configRoute(Routes me) {
		me.scan("controller."); // 路由扫描。"controller."表示扫描被限定的包名,扫描仅会在该包以及该包的子包下进行

	}
public void configPlugin(Plugins me) {
		String jdbcUrlString="jdbc:mysql://127.0.0.1:3306/JFnalDb";
		
		DruidPlugin druidPlugin = new DruidPlugin(jdbcUrlString,"root","20001202");
		ActiveRecordPlugin activeRecordPlugin = new ActiveRecordPlugin(druidPlugin);
		
		activeRecordPlugin.setDevMode(true);
		activeRecordPlugin.setShowSql(true);
		
		activeRecordPlugin.addMapping("user",Book.class);//完成映射
		
		me.add(druidPlugin);
		me.add(activeRecordPlugin);
	}

上面这一步要注意到这些:

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第6张图片

10.webapp文件夹下创建一个book文件夹,里面创建一个index.html

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第7张图片

内容是:





图书表


图书列表

#for(book:books) #end
#(for.index) #(book.id) #(book.name) #(book.author) #(book.price)

11. 修改BookController内容,进行查询操作

package controller;

import java.util.List;

import com.jfinal.core.Controller;
import com.jfinal.core.Path;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

import model.Book;
@Path("/book")
public class BookController extends Controller {
	public static final Book dao= new Book().dao();
	public void index() {		
		List bookList = Db.find("select * from books"); //进行查询
		set("books",bookList);
		render("index.html");
	}
}

12.完成以上操作后,运行DbConfig。然后在浏览器输入: http://localhost/book

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第8张图片

表中的记录已经显示出来了,查询操作完成。

13.接下来分别实现添加,删除,修改操作。注意每一个框要分别进行操作,操作完后就//掉,不然会报500错误。

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第9张图片

注:这是用语句实现的,很土,不适合用户交互,可以看第二种方法⬇️。

 

法二 

比较有难度,运用了生成器……完成后的页面如下(用了点bootstrap和css,设计比较简陋,可以自行完善):

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第10张图片

1.在完成以上步骤的基础上,新建包 service,在里面创建一个名为 BookService的类。

2.在congfig包中加入Generator,并右键运行生成器 (生成器里数据库名和密码要改成你的)。

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第11张图片

package config;

import javax.sql.DataSource;


import com.jfinal.kit.PathKit;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.activerecord.generator.Generator;
import com.jfinal.plugin.druid.DruidPlugin;

public class MyGenerator {
	
	public static DataSource getDataSource() {
		DruidPlugin dp = new DruidPlugin("jdbc:mysql://127.0.0.1:3306/JFinalDb?serverTimezone=UTC&characterEncoding=utf-8", "root", "20001202");
	    dp.start();
    	return dp.getDataSource();
	}

	public static void main(String[] args) {
		//1 DataSource
		//2 base model package name
		String baseModelPackageName="model.base";
		//3 base model dir 
		String baseModelOutputDir=PathKit.getWebRootPath()+"/../java/model/base";
		//4 modelPackageName
		String modelPackageName = "model";
		//5 modelOutputDir 
		String modelOutputDir = baseModelOutputDir + "/..";
		// 
		Generator gernerator= new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);

		gernerator.setDialect(new MysqlDialect());
		// dao
		gernerator.setGenerateDaoInModel(true);

		gernerator.setGenerateDataDictionary(true);

		gernerator.generate();
	}
}

运行后右键刷新项目,会发现项目结构变成这样:

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第12张图片

至于为什么要使用生成器? 

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第13张图片

3.Service层实现对dao的封装,进而实现对数据库增删改查的功能,BookService代码:

package service;

import java.util.Date;

import java.util.List;

import com.jfinal.kit.Ret;

import model.Books;

public class BookService {
	public static final Books dao= new Books().dao();
	//查找列表
		public List getList(){
			return dao.findAll();
		}
		public Books findById(Integer id) {
			return dao.findById(id);
		}
		//删
		public Ret deleteBookById(Integer id) {
			Books book =dao.findById(id);
			if(book==null) {
				return Ret.fail("msg","删除失败");
			}
			boolean success=book.delete();
			return success?Ret.ok("msg","删除成功"):Ret.fail("msg","删除失败");
		}
		//增
		public Ret addBook(Books book) {
			if(book==null) {
				return Ret.fail("msg", "保存失败");
			}
			boolean success=book.save();
			return success?Ret.ok("msg", "保存成功"):Ret.fail("msg","保存失败");
		}		
		//改
		public Ret updateBook(Books book) {
			if(book==null||book.get("id")==null) {
				return Ret.fail("msg","更新失败");
			}
			
			Books dbBook=dao.findById(book.getInt("id"));
			if(dbBook==null) {
				return Ret.fail("msg","更新失败");
			}
			boolean success=book.update();
			return success?Ret.ok("msg","更新成功"):Ret.fail("msg","更新失败");
		}
}

4.修改controller类

package controller;

import java.util.List;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.core.Path;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

import model.Books;
import service.BookService;
@Path("/book")
public class BookController extends Controller {
	
	@Inject
	BookService service;
	public void index() {		
//		List bookList = Db.find("select * from books"); //进行查询
		List bookList = service.getList();
		set("books",bookList);		
		render("index.html");			
	}
	public void delete() {
		Integer idInteger=getInt(0);
		service.deleteBookById(idInteger);
		List bookList = service.getList();
		set("books",bookList);	
		render("index.html");
	}
	public void add() {
		//获取表单内容并填充到model里
		Books book=getModel(Books.class,"book");//get para+new model with para
//		System.out.println(book.toJson());
		service.addBook(getModel(Books.class,"book"));
		List bookList = service.getList();
		set("books",bookList);	
		render("index.html");
//		renderJson(service.addBook(getModel(Books.class,"book")));
	}
	public void edit() {
		Books book=service.findById(getInt(0));
		if(book==null) {
			renderText("失败");
			return;
		}
		set("book",book);
		render("edit.html");
	}	
	public void update() {
		Books book=getModel(Books.class,"book");//get para+new model with para
		service.updateBook(getModel(Books.class,"book"));
		List bookList = service.getList();
		set("books",bookList);
		render("index.html");
	}
	
}

5.webapp/book下新建 edit.html,这个页面是用于“改”操作

JFinal+mysql+eclipse+maven实现对数据库表增删改查(超详细)_第14张图片





Insert title here


修改:

id
name
author
price

6.修改webapp/book/index.html





   
  
  
  
图书列表





	#for(book:books)
	
	
	#end

图书列表:

序号书号id书名name作者author价格price操作
#(for.index) #(book.id) #(book.name) #(book.author) #(book.price) 删除  修改

添加图书:

书名
作者
价格

7.运行config类,浏览器输入http://localhost/book/,over。

note:页面里数据库相关的表字段名别粗心打错了。

THE END

有问题可以在评论区提出哦~

你可能感兴趣的:(开发笔记,macos,mysql,eclipse,数据库)