Jboot学习笔记

jboot项目地址

jboot文档

jfinal文档下载

项目依赖:

		<dependency>
			<groupId>io.jboot</groupId>
			<artifactId>jboot</artifactId>
			<version>1.4.7</version>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>20.0</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.20</version>
		</dependency>

配置参考:

#type default undertow (support:undertow)
jboot.server.type=undertow
jboot.server.host=0.0.0.0
jboot.server.port=8091
jboot.server.contextPath=/

jboot.datasource.type = mysql
jboot.datasource.url = jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=true
jboot.datasource.user = root
jboot.datasource.password = 123456

jboot.swagger.path = /swaggerui
jboot.swagger.title = Jboot API \u6D4B\u8BD5
jboot.swagger.description = \u914D\u7F6E\u8BF4\u660E
jboot.swagger.version = 1.0
jboot.swagger.termsOfService = http://jboot.io
jboot.swagger.contact = \u8054\u7CFB\u65B9\u5F0F...
jboot.swagger.host = 127.0.0.1:80

jboot Controller 代码参考:

@RequestMapping("/test")
@Api(description = "Jboot测试Controller", basePath = "/test", tags = "test")
public class TestController extends JbootController {

	public void testDB() {//sum(cash_amount)
		Record result = Db.findFirst("select id,sum_balance,cash_amount "
				+ "from t_buyer_user as a left join "
				+ "(select cash_user_id,sum(cash_amount) as cash_amount "
				+ "from t_balance_cash where cash_pay_status = 0 group by cash_user_id ) as b "
				+ "on a.id = b.cash_user_id where a.id = ? ", 794L);
		renderJson(result);
	}
	public void subject() {
		Subject subject = SecurityUtils.getSubject();
		renderJson(subject.getPrincipal());
	}
	public void login() {
		UsernamePasswordToken token = new UsernamePasswordToken(getPara("username"), getPara("password"));
		try {
			Subject subject = SecurityUtils.getSubject();
			subject.login(token);
			if (subject.isAuthenticated()) {
				renderJson("login");
				return;
			}
		} catch (UnknownAccountException une) {
			renderJson("用户名不存在");
		} catch (LockedAccountException lae) {
			renderJson("用户被锁定");
		} catch (IncorrectCredentialsException ine) {
			renderJson("用户名或密码不正确");
		} catch (ExcessiveAttemptsException exe) {
			renderJson("账户密码错误次数过多,账户已被限制登录1小时");
		} catch (Exception e) {
			e.printStackTrace();
			renderJson("登录失败!未知错误,请稍后重试");
		} finally {
			
		}
	}
	public void session() {
		setSessionAttr("s1", "okkpp");
		getSessionAttr("s1");
		HttpSession session = getSession();
		session.getAttribute("s1");
		renderJson();
	}
	/**
	 * 多次调用导致结果被覆盖
	 * 记得使用return提前结束
	 */
	public void rendertest() {
		boolean result = true;
		if(result) {
			renderJson("result 1");
			return;
		}
		
		renderJson("result 2");
	}
	/**
	 * getBean getModel
	 * 默认类名.属性
	 * 或者使用 "" 代替 不使用类名 但是不在属性范围内的参数 会引起异常
	 * getModel专门用来获取Model类
	 */
	public void bean() {
		//TBuyerUser user = getBean(TBuyerUser.class, "");
		//System.out.println(user.getNickname());
		renderJson();
	}
	public void model() {
		//TBuyerUser user = getModel(TBuyerUser.class, "");
		//System.out.println(user.getNickname());
		renderJson();
	}
	@ApiOperation(value = "参数测试", httpMethod = "GET", notes = "注释")
	@ApiImplicitParams({
			@ApiImplicitParam(name = "id", value = "用户id", paramType = "query", dataType = "String", required = false),
			@ApiImplicitParam(name = "okkpp", value = "字段名", paramType = "query", dataType = "String", required = false), })
	public void paramap(@Para("id") int id) {
		// 通过形参获取的参数 依然会出现在getParaMap()中
		System.out.println(getPara("okkpp"));
		Map<String, String[]> paraMap = getParaMap();
		for (String key : paraMap.keySet()) {
			System.out.println(key + ":" + paraMap.get(key).toString());
		}
		renderJson();
	}

	/**
	 * 入参为基本类型 @Para 必须标记value
	 * @param id
	 * @param num
	 */
	public void para2(int id, @Para("num")int num, @Para("str")String str) {
		System.out.println(id+"-"+num+str);
		renderJson(id+"-"+num+str);
	}
	public void para(@Para("model") Model model, @Para("") Model other) {
		// 入参形式应为 model.id @Para("")说明不需要带前缀直接id
		System.out.println("默认方法");
		System.out.println(model.getMap().toString());
		renderJson();
	}

	public void test() {
		Map<String, Object> params = new HashMap<String, Object>(16);
		params.put("model", new Model(1, "mark"));
		params.put("model2", new Model(2, "okkpp"));
		params.put("model.id", 3);
		params.put("model.mark", "duck");
		params.putAll(getParaMap());
		Jboot.httpPost("http://127.0.0.1:8080/test/para", params);
		renderJson();
	}

//	@Inject
//	private TBuyerUser dao = new TBuyerUser().dao();
	public void db2() {
//		TBuyerUser user = dao.findFirst("select * from t_buyer_user where id = ?", getPara("id"));
//		if(null!=user) {
//			renderJson(user);
//		}else {
//			renderJson("not find");
//		}
	}
	public void db() {
		//find方法把查询的结果集都收集到map里 存到Record的map
		List<Record> records = Db.find("select now()");
		renderJson(records);
	}

	public static void main(String[] args) {
		Jboot.run(args);
	}
}

jboot 源码生成器示例:

public class CodeGenerator {

    public static void main(String args[]){
        //依赖model的包名
        String modelPackage = "okkpp.model";
        //生成service 的包名
        String basePackage = "okkpp.service";

        //生成model dao层
        //JbootModelGenerator.run(modelPackage);
        String baseModelPackage = modelPackage + ".base";

        String modelDir = PathKit.getWebRootPath() + "/src/main/java/" + modelPackage.replace(".", "/");
        String baseModelDir = PathKit.getWebRootPath() + "/src/main/java/" + baseModelPackage.replace(".", "/");

        System.out.println("start generate...");
        System.out.println("generate dir:" + modelDir);

        //去掉表前缀
        MetaBuilder metaBuilder = CodeGenHelpler.createMetaBuilder();
        metaBuilder.setRemovedTableNamePrefixes("t_");
        
        List<TableMeta> tableMetaList = metaBuilder.build();
        CodeGenHelpler.excludeTables(tableMetaList, null);

        new JbootBaseModelGenerator(baseModelPackage, baseModelDir).generate(tableMetaList);
        new JbootModelnfoGenerator(modelPackage, baseModelPackage, modelDir).generate(tableMetaList);
        
        //生成service
        //JbootServiceGenerator.run(basePackage, modelPackage);
        System.out.println("start generate...");

        new JbootServiceInterfaceGenerator(basePackage, modelPackage).generate(tableMetaList);
        new JbootServiceImplGenerator(basePackage , modelPackage).generate(tableMetaList);

    }
}

猜你喜欢

转载自blog.csdn.net/qq_29126023/article/details/84374337