play教程 第八课 Model的用法 play中的JPA
来源:互联网 发布:mac os 下载地址 编辑:程序博客网 时间:2024/05/22 06:56
-Model层介绍
Model是MVC架构中的又一重量级概念,前文中我们已经讲过了Controller和View,接下来就讲一下这个Model。
Model层的作用这里再简单说一下。和其他框架一样,model层主要是用来做数据模型的,另外有几点特别要提一下
- 实体类中的属性需要public修饰
- 实体类不需要写get/set方法
- 通常我们会在实体类中写数据库操作方法,也就是传统框架中的dao层
举个栗子:
@Entitypublic class Address extends Model{ public String address; public String telephone; public Long userid; public String name; public boolean del; public Long cardid; /** * 查看收货地址是否已存在 * @param name * @param address * @return */ public static boolean findByCondition(String name,String address){ int rows = Address. find("del=? and name=? and address=?", false,name,address).fetch().size(); if( rows>0){ return true; } else{ return false; } } /** * 根据 userid查询 * @param userid * @return */ public static List<Address> findByUserid(Long userid){ return Address. find("del=? and userid=? order by id desc",false,userid).fetch(); }}
看到这里,一些老练的程序员会指出:“wrong!wrong!!wrong!!!我们不应该把属性设置成public,应该是private,这样才符合java的封装特性。”好吧,既然你想到了,那么Play肯定也想到了,事实上,play在后台是为这些属性做过处理的,已经处理成了private,并且为我们生成了set/get方法。为什么要这么做呢?原因只有一个,play在想尽一切办法帮我们提高开发效率,这种无聊的工作交给框架后台处理,我们应该专注做一些有价值的逻辑开发。
-启用数据库
在play中用“启用”这两个字比较贴切,因为他不需要什么加载驱动、创建链接之类的繁琐步骤,只需要在/conf/application.conf文件中配置一下就可以,而且这里的配置非常简单。下面我们介绍两种启用数据库的方法,均已mysql为例。
–第一种方法
# db=mem# To connect to a local MySQL5 database, use:# db=mysql://user:pwd@host/database
在application.conf文件中找到这样几行,把粗体的两行去掉“#”,然后在第二行写上我们自己使用的数据库信息
举个栗子
db=mem# To connect to a local MySQL5 database, use:db=mysql://root:123456@host/hellodb
–第二种方法
# If you need a full JDBC configuration use the following :# db.url=jdbc:postgresql:database_name# db.driver=org.postgresql.Driver# db.user=root# db.pass=secret
在application.conf文件中找到这样几行,把粗体的几行去掉“#”,同样,根据自己的实际情况,修改配置信息.
举个栗子
db.url=jdbc:mysql://localhost/hellodbdb.driver=com.mysql.jdbc.Driverdb.user=rootdb.pass=123456
-JPA的使用
JPA全称the Java Persistence API,也就是对数据库进行操作的数据模型实体类操作,是play中的一大利器,又帮我们减少了许多臃肿的代码。
正如本文第一个例子中那样,play中的实体类要继承Model类,并且要有@Entity注释。play中的JPA给我们带来多大的便利呢?
//增user.save();//删user.delete();//改user.email = “new@emailaddress.com”;user.save();//查User user = User.findById(1L);//查列表List<User> users = User.find(“admin = ?”, “true”).fetch();
怎么样,是不是很奇妙,很简单?It’s so easy.
再举个栗子。
/** * 添加地址 * @param address * @param telephone * @param name * @param userid */ public static void add(String address,String telephone,String name,Long userid){ Address addr = new Address(); addr. address = address; addr. telephone = telephone; addr. name = name; addr. cardid = getCardid(); int flag = 0; if(!Address. findByCondition(name, address)){ flag = 1; } addr.save(); JSONArray result = JSONArray. fromObject(flag); renderJSON(result); } /** * 根据用户ID查出地址信息 * @param userid */ public static void show(Long userid){ List<Address> addresses = Address.findByCardid(getCardid()); Map<String,Object> resultMap = convertToMap(addresses); renderJSON(resultMap); } /** * 删除收货地址 * @param addrid */ public static void del(Long addrid,Long userid){ Address addr = Address. findById(addrid); addr. del = true; addr.save(); }
- play教程 第八课 Model的用法 play中的JPA
- play教程 第八课 Model的用法 play中的JPA
- play教程 第五课 play中Controller的用法
- play教程 第五课 play中Controller的用法
- play教程 第六课 play中的session
- play教程 第六课 play中的session
- play教程 第七课 View的用法 模版的用法
- play教程 第七课 View的用法 模版的用法
- play教程 第三课:初识play运行机制
- play教程 第三课:初识play运行机制
- play framework学习笔记之Model类的使用及JPA entity manager
- play framework学习笔记之Model类的使用及JPA entity manager
- play framework学习笔记之Model类的使用及JPA entity manager
- play 教程
- Play的model层,数据库配置
- play model层
- play教程 第九课 play framework实现多文件上传
- play
- test5.6
- 在CentOS7上安装MySQL Workbench
- asp.net音频播放代码,兼容HTML5以及非HTML5浏览器
- android 切换主题实现
- 使用 CSS3 实现 3D 图片滑块效果
- play教程 第八课 Model的用法 play中的JPA
- Java常用排序算法
- 触发器
- VMware Workstation中安装64位linux
- 黑马程序员_java基础_UDP山寨QQ聊天
- 解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
- LeetCode -- Fraction to Recurring Decimal
- 文章标题
- 网络端口查看命令-netstat/nmap