拿我自身简单的增删改查来做笔记 也是拿官网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);
}
}