上一篇记录了使用playframework连接mysql,这一篇依然是连接mysql,然后实现简单的增删改查!
一、生成一个工程:
再次记录一下创建play工程的步骤:
1、使用命令:play new 工程名 创建一个工程,如:play new TestPlayCURD;
2、使用命令:play eclipsify 工程名 将play工程转成eclipse工程,如:play eclipsify TestPlayCURD;
3、使用eclipse或者myeclipse将工程导入IDE。
二、配置工程:
1、配置数据库信息:
修改conf/application.conf:
找到下图中的这一段代码,修改成需要连接的数据库:
2、修改eclipse/工程名.launch,注意,我这里是:eclipse/TestPlayCURD.launch:
注意:在eclipse/myeclipse中运行或者debug时是在eclipse/TestPlayCURD.launch文件上右键运行或者debug的!
三、java代码:
1、工程的主要目录:
2、实体类User.java:
package com.mfc.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import play.db.jpa.Model;
/**
* 2017年9月25日22:38:30
* user表对应的实体类
*/
@Entity
@Table(name = "user")
public class User extends Model {
@Column(name = "uName")
private String uName;
@Column(name = "uPass")
private String uPass;
@Column(name = "uPhoto")
private String uPhoto;
@Column(name = "uAge")
private int uAge;
public User() {
super();
}
public User(String uName, String uPass, String uPhoto, int uAge) {
super();
this.uName = uName;
this.uPass = uPass;
this.uPhoto = uPhoto;
this.uAge = uAge;
}
public String getuName() {
return uName;
}
public void setuName(String uName) {
this.uName = uName;
}
public String getuPass() {
return uPass;
}
public void setuPass(String uPass) {
this.uPass = uPass;
}
public String getuPhoto() {
return uPhoto;
}
public void setuPhoto(String uPhoto) {
this.uPhoto = uPhoto;
}
public int getuAge() {
return uAge;
}
public void setuAge(int uAge) {
this.uAge = uAge;
}
}
注意:这里不用自己创建数据库,可以直接使用注解生成数据库和表,并且实体类里面不需要id属性,因为实体类继承了Model,Model里面有一个id,这样虽然User.java里面没有id,但是User.java继承了Model的id,生成的表中还是有id的!
3、index.html:
#{extends 'main.html' /}
#{set title:'Home' /}
#{if flash.error}
<p style="color:#c00">
${flash.error}
</p>
#{/if}
<form action="@{Application.login()}" method="get">
<input type="text" name="uname"><br>
<input type="password" name="upass"><br>
<input type="submit" value="登录">
<input type="reset" value="取消">
</form>
<a href="/Application/addUserPage">注册用户</a>
4、Application.java:
package controllers;
import java.util.List;
import javax.persistence.Cache;
import com.mfc.entity.User;
import models.UserDao;
import play.data.validation.Required;
import play.mvc.Controller;
/**
* 2017年9月25日22:36:32
* 对用户进行增删改查的action
* */
public class Application extends Controller {
private static UserDao dao = new UserDao();
public static void index() {
render();
}
public static void login(@Required String uname,@Required String upass){
User loginUser = dao.getUserByUNameAndUPass(uname, upass);
if (validation.hasErrors()) {
flash.error("用户名和密码不能为空!");
index();
} else if(loginUser == null){
flash.error("用户名或密码不正确!");
index();
} else{
getAllUser();
}
}
public static void getAllUser(){
List<User> allUsers = dao.getAllUser();
renderArgs.put("allUsers", allUsers);
render();
}
public static void updateUser(String uid){
Long id = Long.parseLong(uid);
User user = dao.getUserById(id);
renderArgs.put("user", user);
render();
}
public static void updateSuccess(User user){
dao.updateUser(user);
getAllUser();
}
public static void deleteUser(String uid){
Long id = Long.parseLong(uid);
User user = dao.getUserById(id);
dao.deleteUser(user);
getAllUser();
}
public static void addUserPage(){
render();
}
public static void addUser(User user){
dao.updateUser(user);
index();
}
}
5、UserDao.java:
package models;
import java.util.List;
import javax.persistence.EntityManager;
import com.mfc.entity.User;
import play.db.jpa.JPA;
/**
* 2017年9月25日22:38:38
* 对用户进行操作的dao
* */
public class UserDao {
//查询所有的用户
public List<User> getAllUser(){
List<User> list = User.findAll();
for (User user1 : list) {
System.out.println(user1.getuName());
}
return list;
}
//根据用户名和密码查询用户
public User getUserByUNameAndUPass(String uName,String uPass){
List<User> list = User.find("uName=? and uPass=?", uName,uPass).fetch();
if(list.size() == 0){
return null;
}else{
return list.get(0);
}
}
//根据id查询用户
public User getUserById(Long id){
User user = User.findById(id);
return user;
}
//修改或添加用户用户
public void updateUser(User user){
user.save();
}
//删除用户
public void deleteUser(User user){
user.delete();
}
}
6、getAllUser.html:
#{extends 'main.html' /}
#{set title:'Home' /}
<table border="1" style="width: 60%; text-align: center;">
<tr>
<td>ID</td>
<td>姓名</td>
<td>密码</td>
<td>年龄</td>
<td>操作</td>
</tr>
#{list items:allUsers, as:'users'}
<tr>
<td>${users.id}</td>
<td>${users.uName}</td>
<td>${users.uPass}</td>
<td>${users.uAge}</td>
<td><a href="/Application/updateUser?uid=${users.id}">编辑</a>|<a href="/Application/deleteUser?uid=${users.id}">删除</a></td>
</tr>
#{/list}
</table>
7、addUserPage.html:
#{extends 'main.html' /}
#{set title:'Home' /}
<form action="@{Application.addUser()}" method="post">
姓名:<input type="text" name="user.uName"><br>
密码:<input type="password" name="user.uPass"><br>
年龄:<input type="number" name="user.uAge"><br>
<input type="submit" value="注册">
</form>
8、updateUser.html:
#{extends 'main.html' /}
#{set title:'Home' /}
<form action="@{Application.updateSuccess()}" method="get">
<table border="1" style="width: 60%;">
<tr>
<td>属性</td>
<td>属性值</td>
</tr>
<tr>
<td>id</td>
<td>${user.id}</td>
</tr>
<tr>
<td>姓名</td>
<td>
<input type="hidden" value="${user.id}" name="user.id">
<input type="text" value="${user.uName}" name="user.uName">
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="text" value="${user.uPass}" name="user.uPass">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交">
<input type="reset" value="清空">
</td>
</tr>
</table>
</form>
源码下载:http://download.csdn.net/download/fancheng614/9995270