学习play_数据交互
来源:互联网 发布:mysql insert安装教程 编辑:程序博客网 时间:2024/06/07 11:56
前言:可能小弟说的很笼统,但~我尽量了,之前说了建立模型,控制层,页面(总结)
模型:模型需要继承importplay.db.jpa.Model;才能使用,对于字段查看hibernate注解进行验证或者说明映射数据库的字段
在play中,我不怎么建议采用以前java的驼峰命名法,而是统一的类名首字母大写,其余的小写,多个单词以下划线隔开(这不一定,你要用驼峰也行)
字段名称全部小写,多个单词下划线隔开 之所以用小写,下划线隔开,是为了更好的生成数据库,与数据库匹配,若是驼峰命名,就要写明一些字段对应的数据库字段名称
控制器:控制器需要继承importplay.mvc.Controller;所有的方法都是public static修饰的,对于传递参数用注解验证(请看hibernate注解)
跳转页面采用的是render(具体看上一节)、方法中操作数据库的SQL语句采用的是jpql语句,控制器命名是采用模型名称加下划线加c如:User_c
试图:以前用的是jsp,现在在play中是html,但play更亲近程序员,直接写java代码都可以,只不过采用的是标签的形式,其次对于相同的布局/样式直接采用继承的形式达到引用的目的
开始:
访问后台
例如:去登录
在play中访问页面的方式有:
以路劲的形式写:如:'/User_c/login'这种方式,这种方式写必须在conf/routes中配置路径,访问某个方法
例子:index.html中<a href="/User_c/login">去登录</a>
在routes中的配置:GET /User_c/login User_c.login
然后在User_c这个控制器中写方法:public static void login(){render();}
在views目录下,新建一个文件夹名为User_c,再在User_c中新建login.html就跳转到login页面了
体会:总的来说,就是一个控制器(User_c)对应一个views中的文件夹(User_c)名称相同,跳转页面就是一个方法,什么都是方法!(可以方法名不同,在配置的时候自己配置)
如:去登陆路径是'/User_c/login' 然后routes中配置GET /User_c/login User_c.index 这种,就是访问index,虽然你写的是login
以方法的形式访问:@{User_c.login()}这种方式就不用配置,直接访问到login方法,然后是跳转还是操作都可以
例子:index.html中<a href="@{User_c.login()}">去登录</a>
然后在User_c这个控制器中写方法:public static void login(){render();}
在views目录下,新建一个文件夹名为User_c,再在User_c中新建login.html就跳转到login页面了
体会:其实还是hibernate那样,直接写路径就行,只不过这是写方法名称
数据操作:登录
在login.html中有个form
<form action="@{User_c.login()}">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="提交">
</form>
这种情况时,当你点击提交时就会访问你的User_c控制器中的login方法如:User_c类中有 public static void login(String username,@Size(6,18)String password){ //这里进行数据操作 User user=User.find("byNameAndPwd",username,password).first();//查询是否有该用户 User user1=User.find("from User u where u.name="+username " and u.pwd="+password).first();//查询是否有该用户 }
在play中采用的是jpql语句,也就是上面的
jpql语句分为:短语句,sql语句
短语句:findAll();//查询全部 、find("byName",name).fetch();//根据名称查询
sql语句:直接写from 实体类 条件,
具体的请看:http://blog.csdn.net/suncaishen/article/details/6279695
可能有的人认为我直接用方法那种不就行了吗,但是有的情况你还是会用到路径形式,例如:用layer插件弹出框时(我为了少写页面,添加,修改,查看都是用的layer插件的弹窗,而这是没办法写方法名的,所以要去配置)
上面的是查询(根据用户名、密码查询),增加就是hibernate的save()方法,不懂得可以百度下,这里我还是写下 例如:User实体类有两个字段:name,pwd @Entity public class User extends Model(){ public String name; public String pwd; }add_user.html页面中 <form action="@{User_c.add_user()}" method="post"> 用户名:<input type="text" name="u.name"/> 密码:<input type="password" name="u.pwd"/> <input type="submit" value="提交"/> </form>
User_c控制层: public class User_c extends controller{ public static void add_user(User user){ user.save();//这就是添加的方法了,很简单,与hibernate相同 index();//这是调用index方法 //render("/User_c/user-list.html");这是跳转页面 //renderJSON("true");//这是返回json数据,play可以直接返回boolean } }
User_c控制层: public class User_c extends controller{ public static void add_user(User user){ user.save();//这就是添加的方法了,很简单,与hibernate相同 index();//这是调用index方法 //render("/User_c/user-list.html");这是跳转页面 //renderJSON("true");//这是返回json数据,play可以直接返回boolean } }
修改:user.name="aa";//这样就修改了删除:user.delete("id=+"id);//多看hibernate,就好然后记录下:实体类写的Date类型在自动生成数据库时会变成datetime,当我们在html中显示的时候,不想要后面的会用到?.format('yyyy-MM-dd')例如:${user.login_time?format('yyyy-MM-dd')}//得到登陆时间未完待续。。。
- 学习play_数据交互
- 学习play_图片上传
- springmvc学习笔记(18)-json数据交互
- SpringMVC学习之json数据交互
- springmvc学习笔记(18)-json数据交互
- Springmvc学习(08)-json数据交互
- 数据交互
- 数据交互
- 数据交互
- 数据交互
- 数据交互
- 学习flex 初步实现与java进行数据交互
- Android客户端与数据库交互数据的简单学习
- PHP学习笔记-数据交互-访问mysql数据库
- 【SpringMVC学习09】SpringMVC与前台的json数据交互
- 【SpringMVC学习09】SpringMVC与前台的json数据交互
- 【SpringMVC学习09】SpringMVC与前台的json数据交互
- json数据交互---SpringMVC学习笔记(十二)
- CSS overflow 属性
- java equals重写判断一个类的两个对象(摘自java从入门到精通)
- Android中Notification的使用
- 数据结构专题——线段树线段树
- debug.keystore的默认值
- 学习play_数据交互
- 172
- Linux命令之chmod
- ArcGIS中QueryTask,FindTask,IndentifyTask 之间的区别
- 名企笔试:搜狗2016研发工程师笔试(矩阵元素相乘)2017-03-13 算法爱好者
- 科目二考试
- 使用QXmlStreamReader和QXmlStreamWriter读写XMl文件
- vmware network adapter vmnet8 没有有效的IP配置
- Hive部署——Linux安装mysql5.7