play教程 第八课 Model的用法 play中的JPA

-Model层介绍

Model是MVC架构中的又一重量级概念,前文中我们已经讲过了Controller和View,接下来就讲一下这个Model。 Model层的作用这里再简单说一下。和其他框架一样,model层主要是用来做数据模型的,另外有几点特别要提一下

举个栗子:

{public String address;public String telephone;public Long userid;public String name;public boolean del;public Long cardid;/*** 查看收货地址是否已存在* @param name* @param address* @return*/(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为例。

–第一种方法

在application.conf文件中找到这样几行,把粗体的两行去掉“#”,然后在第二行写上我们自己使用的数据库信息 举个栗子

db=mem# To connect to a local MySQL5 database, use:db=mysql://root:123456@host/hellodb–第二种方法

在application.conf文件中找到这样几行,把粗体的几行去掉“#”,同样,,根据自己的实际情况,修改配置信息. 举个栗子

db.url=jdbc:mysql://localhost/hellodbdbdb.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*/(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*/(Long userid){List<Address> addresses = Address.findByCardid(getCardid());Map<String,Object> resultMap = convertToMap(addresses);renderJSON(resultMap);}/*** 删除收货地址* @param addrid*/(Long addrid,Long userid){Address addr = Address. findById(addrid);addr. del = true;addr.save();}

三人一条心,黄土变成金。

play教程 第八课 Model的用法 play中的JPA

相关文章:

你感兴趣的文章:

标签云: