基于java+play的相关数据库的查询和多表查询问题
来源:互联网 发布:网络政治参与图片 编辑:程序博客网 时间:2024/06/08 07:24
对于单表查询
因为play时基于无状态的mvc模式,一定要严格遵守
以用户登陆验证为例
1.1前端用ajax请求
function loginFunc(){
var uname = $('#uname').val();
var upass = $('#upass').val();
$.ajax({
type : "post",
url: "/Login/userLogin",
data:"uname=" + uname +"&upass="+ upass,
datatype : "json",
cache : true,
async:true,
success : function(data){
if(data == "1"){
window.location.href = "@{web.Cirrhosis.index1()}";
}else if(data== "2"){
alert("用户不存在");
}else{
alert("登录失败");
}
}
})
}
//后端处理前端请求
public static void userLogin(){
String uname = params.get("uname"); // 获取ID
String upass = params.get("upass"); //获取密码
System.out.println("uname"+uname);
Users userinfo = Users.find("uname=? AND delFlg ='1'", uname).first(); // 用户姓名和数据库 进行匹配
System.out.println(userinfo);
if(userinfo == null || userinfo.delFlg.equals("0")){
renderText("2"); // 用户名不存在
}else if(userinfo.upass.equals(upass)){ // 判用户
renderText("1"); // 登录成功
}else{
renderText("0"); // 登录失败
}
}
1.3查询一行数据
Users userinfo = Users.find("uname=? AND delFlg ='1'", uname).first(); // 用户姓名和数据库 进行匹配
1.4查询多条数据
Users userinfo = Users.find("uname=? AND delFlg ='1'", uname).fetch(); // 用户姓名和数据库 进行匹配
1.5新增表单信息具体
public static void newUser() {
String did = params.get("did");
String dname = params.get("dname");
String dperson = params.get("dperson");
Departmentm userinfo = Departmentm.find("did=? and delFlg='1'", did).first(); // delFlg 删除标识
if (userinfo != null) {
renderText("0"); // 用户名已存在
} else {
userinfo = new Departmentm(); // 新增用户
}
userinfo.did = did;
userinfo.dname = dname;
userinfo.dperson = dperson;
userinfo.delFlg = "1";
userinfo.save(); // 保存
renderText("1");
}
1.6 删除信息 采用的是假删除
public static void del() {
String sysID = params.get("sysID");
Departmentm card = Departmentm.find("sysID=? AND delFlg ='1' ", sysID).first();
if(card!=null){
card.delFlg = "0"; //假 删除
card.save(); // 保存
renderText("2"); // 删除成功
}else{
renderText("1"); // 不允许删除
}
}
1.7修改相应
2.1首先根据id查询出具体的相关信息
public static void editIndex() {
String did = params.get("did");
System.out.println("did"+did);
Departmentm biData = Departmentm.find("did=?", did).first();
System.out.println(biData);
render(biData);
}
2.1在页面中得到具体的信息 再修改
public static void reset() {
String did = params.get("did");
Departmentm info = Departmentm.find("did=? AND delFlg ='1'", did).first();
info.dname = params.get("dname"); // 部门名称
info.dperson = params.get("dperson");// 部门人数
info.save();
renderText("1");
}
前端统一的是ajax请求
最后就是多表查询
String yangyu1 = params.get("yangyu1");
System.out.println("yangyu1"+yangyu1);
String sql="select users.*,cirrhosisr.* from users , cirrhosisr where users.sysID=cirrhosisr.brID and users.uname='杨宇'";
Query query=JPA.em().createNativeQuery(sql);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String,String>>list=query.getResultList();
for(Map<String,String>map:list){
System.out.println("id = " );
}
//、、、、、、、、注意必须要转换成json格式
Gson gson = new Gson();
String cardlst = gson.toJson(list);
cardlst= cardlst.replace("\"","'");
System.out.println(cardlst);
render(cardlst);
}
返回一个集合,前端进行接收,打印出相关数据!
var showData = ${cardlst};
if(showData != null && showData != ""){
for(var i = 0; i < showData.length; i++){
showData[i].key=value//便利根据key得到value因为存储的方式是map键值对形式
}
- 基于java+play的相关数据库的查询和多表查询问题
- java查询数据库表的相关信息
- 基于play的用户登陆验验证和数据库的相关连接问题
- play frameword 连接数据库, 查询数据。简单的表单提交
- SQL 查询数据库中包含指定字符串的相关表和相关记录
- 相关查询的子查询和嵌套子查询
- 基于TP的数据库查询和分页类应用模块
- 数据库的简单查询和连接查询
- 数据库的组合查询和统计查询
- 一个数据库查询的问题
- 数据库多线程查询的问题
- ASP 数据库查询的问题
- 数据库的多表查询
- 数据库的多表查询
- 数据库的多表查询
- 数据库的一些字典表查询和分页查询…
- 数据库相关:小结Hibernate的查询方式
- 数据库表的查询
- 编译rbgirshick的py-faster-rcnn
- 算法导论 练习题 13.1-2
- 15个高级Java多线程面试题及回答
- 欢迎使用CSDN-markdown编辑器
- XMind思维导图软件中的实用小功能
- 基于java+play的相关数据库的查询和多表查询问题
- ffmpeg rtsp
- sed与awk学习笔记(一)
- Java泛型详解
- 集合框架示意图
- Callable、Future和FutureTask
- 数据结构List实例(三):寻找倒数第k个结点值
- 读取excel标题、内容
- Nova 中的一些基本概念(1)