【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
@阿信sxq 你好,想跟你请教个问题:
这个是数据表写的类
public class Dn_User implements Serializable, com.base.common.entity.Entity {
private Integer USER_ID;
private String USER_NAME;
private String PASSWORD;
private String PASSWORD_SALT;
private Integer PASSWORD_FORMAT;
private Integer ACCOUNT_STATUS;
private Integer USER_TYPE;
private Integer ACCOUNT_ID;
private Date INSERT_TIME;
private Date LAST_CHANGED;
private Integer STATUS;
private String PWD;
public String getPWD() {
return PWD;
}
public void setPWD(String pWD) {
PWD = pWD;
}
public Integer getUSER_ID() {
return USER_ID;
}
public void setUSER_ID(Integer uSER_ID) {
USER_ID = uSER_ID;
}
public String getUSER_NAME() {
return USER_NAME;
}
public void setUSER_NAME(String uSER_NAME) {
USER_NAME = uSER_NAME;
}
public String getPASSWORD() {
return PASSWORD;
}
public void setPASSWORD(String pASSWORD) {
PASSWORD = pASSWORD;
}
public String getPASSWORD_SALT() {
return PASSWORD_SALT;
}
public void setPASSWORD_SALT(String pASSWORD_SALT) {
PASSWORD_SALT = pASSWORD_SALT;
}
public Integer getPASSWORD_FORMAT() {
return PASSWORD_FORMAT;
}
public void setPASSWORD_FORMAT(Integer pASSWORD_FORMAT) {
PASSWORD_FORMAT = pASSWORD_FORMAT;
}
public Integer getACCOUNT_STATUS() {
return ACCOUNT_STATUS;
}
public void setACCOUNT_STATUS(Integer aCCOUNT_STATUS) {
ACCOUNT_STATUS = aCCOUNT_STATUS;
}
public Integer getUSER_TYPE() {
return USER_TYPE;
}
public void setUSER_TYPE(Integer uSER_TYPE) {
USER_TYPE = uSER_TYPE;
}
public Integer getACCOUNT_ID() {
return ACCOUNT_ID;
}
public void setACCOUNT_ID(Integer aCCOUNT_ID) {
ACCOUNT_ID = aCCOUNT_ID;
}
public Date getINSERT_TIME() {
return INSERT_TIME;
}
public void setINSERT_TIME(Date iNSERT_TIME) {
INSERT_TIME = iNSERT_TIME;
}
public Date getLAST_CHANGED() {
return LAST_CHANGED;
}
public void setLAST_CHANGED(Date lAST_CHANGED) {
LAST_CHANGED = lAST_CHANGED;
}
public Integer getSTATUS() {
return STATUS;
}
public void setSTATUS(Integer sTATUS) {
STATUS = sTATUS;
}
@Override
public Long getId() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setId(Long arg0) {
// TODO Auto-generated method stub
}
}
这个是一个manager来写通过sql语句去数据库查询的方法
//查询用户
public List<Dn_User> searchUser(Dn_User bean){
List<Dn_User> userList=new ArrayList();
try {
StringBuffer sql = new StringBuffer();
sql.append("SELECT * FROM DN_USER WHERE USER_NAME = "+"'snow#"+ bean.getUSER_NAME()+"';");
userList = JQDbHelperPermission.queryPlural(Dn_User.class, sql.toString(), null);
System.out.println(bean.getUSER_NAME());
} catch (Exception e) {
e.printStackTrace();
}
return userList;
}
}
public class LoginAction extends CommonAction implements ModelDriven<Dn_User> {
private Dn_User form = new Dn_User();
public Dn_User getModel() {
return form;
}
/*
* 登录
*/
public String landed() {
if (StringUtils.isNotBlank(form.getUSER_NAME())&& StringUtils.isNotBlank(form.getPASSWORD())){
Dn_User_Manager manager = new Dn_User_Manager();
System.out.println(form.getUSER_NAME());
List<Dn_User> list = manager.searchUser(form);
if (list != null && list.size() > 0){
Dn_User user = list.get(0);
System.out.println(user.getUSER_NAME());
String salt = user.getPASSWORD_SALT();
String oldPass = user.getPASSWORD();
// 密码加密方式
String newPass = StringCode.SundearMd5(form.getPASSWORD(), salt);
if (StringUtils.isNotBlank(oldPass) && oldPass != null){
if (oldPass.equals(newPass)) {
ActionContext.getContext().getSession().put("user", user);
setJsondata(JsonResult.ajax(true, user));
return DATA;
}else{
setJsondata(JsonResult.ajax(false, 3));
return DATA;
}
}else{
String pwd = user.getPWD();
if(StringUtils.isNotBlank(pwd) && pwd!=null){
//密码加密方式
System.out.println("2执行");
String pwdMD = StringCode.SundearMd5(form.getPASSWORD());
if(pwd.equals(pwdMD)){
ActionContext.getContext().getSession().put("user", user);
setJsondata(JsonResult.ajax(true, user));
return DATA;
}else{
if (StringCode.encrypt(form.getPASSWORD()).equals(user.getPASSWORD())){
ActionContext.getContext().getSession().put("user", user);
setJsondata(JsonResult.ajax(true, user));
return DATA;
}else{
setJsondata(JsonResult.ajax(false, 3));
return DATA;
}
}
}else{
setJsondata(JsonResult.ajax(false, 3));
return DATA;
}
}
}else{
// 用户名不存在
setJsondata(JsonResult.ajax(false, "1"));
return DATA;
}
}
return LOGIN;
}
}
这个是登录的jsp
<title>登录页</title>
</head>
<link href="<%=path %>/exchangeWine/assets/css/common.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="<%=path %>/exchangeWine/assets/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="<%=path %>/exchangeWine/assets/js/jquery.validate.js"></script>
<script type="text/javascript" src="<%=path %>/meituan/resource/js/interaction.js"></script>
<body style="background-color:#f0f0f0;">
<div class="mth1"></div>
<div class="register">
<form id="registerForm" name="registerForm" method="post">
<div class="mid mt10" style="width:80%;">
<span class="registerinputlabel">用户名</span><span><img id="registericon1" class="registerinputicon" src="assets/images/registericon1.png"/></span>
<input type="tel" id="registermobile" name="registermobile" style="width:80%;" maxlength="11" value="" />
</div>
<div class="mid mt10" style="width:80%;">
<span class="registerinputlabel">密码 </span><%-- <span><img id="registericon2" class="registerinputicon" style="width:24px;" src="resource/images/registericon2.png"/></span> --%>
<input type="password" id="registerkeyword" name="registerkeyword" style="width:80%;"/>
<label class="keywordtip"></label>
<br/><label class="error" for="registerkeyword"></label>
</div>
<s:hidden id="USER_NAME" name="USER_NAME"></s:hidden>
<s:hidden id="PASSWORD" name="PASSWORD"></s:hidden>
</form>
<div class="mid mt10" style="width:80%;">
<input type="button" style="color:#fff;font-size:16px; background:#00811b;border:none;border-radius:2px; width:100%; text-align:center" value="立即登录" readonly="readonly" onclick="checkLogin()" />
</div>
</div>
</body>
<script type="text/javascript">
//登录校验
var checkLogin = function (){
if(!($('#registermobile').val()!=null && $('#registermobile').val().length>0)){
alert("您输入的用户名不能为空!");
return false;
}else if(!($('#registerkeyword').val()!=null && $('#registerkeyword').val().length>0)){
alert("您输入的密码不能为空!");
return false;
}
$("#PASSWORD").val($('#registerkeyword').val());
$("#USER_NAME").val($('#registermobile').val());
$.ajax({
async:false,
type:"post",
data:$('#registerForm').serialize(),
url:"<%=path%>/wine/login!landed",
dataType:"json",
success:function(json){
if(json.success){
window.location.href="<%=path%>/wine/index!execute";
}else{
if(json.msg=='1'){
alert("用户名不存在");
}else if(json.msg=='2'){
alert("用户已被注销");
}else if (json.msg=='3'){
alert("用户密码错误");
}else if (json.msg=='6'){
alert("请先绑定手机号");
var s = $('#registermobile').val();
window.location.href="<%=path%>/wine/index.jsp?s="+s;
}else{
alert("数据加载失败!");
}
}
},
error:function(){
alert("数据加载失败!");
}
});
}
</script>
</html>
引用来自“阿信sxq”的评论
代码太烂了,这真的是公司在用的代码?不敢相信啊sql.append("SELECT * FROM DN_USER WHERE USER_NAME = "+"'snow#"+ bean.getUSER_NAME()+"';");
userList = JQDbHelperPermission.queryPlural(Dn_User.class, sql.toString(), null);
System.out.println(userList.get(0).getUSERNAME());
我这里加了一个打印语句想看看user有没有值,但是这步就是null
引用来自“阿信sxq”的评论
代码太烂了,这真的是公司在用的代码?不敢相信啊引用来自“南燕北灰”的评论
....这个是我照着写的,应该是这一步出了问题,sql.append("SELECT * FROM DN_USER WHERE USER_NAME = "+"'snow#"+ bean.getUSER_NAME()+"';");
userList = JQDbHelperPermission.queryPlural(Dn_User.class, sql.toString(), null);
System.out.println(userList.get(0).getUSERNAME());
我这里加了一个打印语句想看看user有没有值,但是这步就是null
既然他们让我这么写,我就这样写了,
StringBuffer sql = new StringBuffer();
sql.append("SELECT * FROM DN_USER WHERE USER_NAME = "+"'snow#"+ bean.getUSER_NAME()+"';");
userList = JQDbHelperPermission.queryPlural(Dn_User.class, sql.toString(), null);
这个queryPlural(Dn_User.class, sql.toString(), null);方法,
public static <T> List<T> queryPlural(Class<T> t, String sql, Object... param) throws Exception {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
List<T> list = new ArrayList<T>();
try {
conn = getConnection();
stmt = conn.prepareStatement(sql);
setParameters(stmt, param);
rs = stmt.executeQuery();
while (rs.next()) {
list.add(instance(t, rs, sql));
}
}catch(Exception e){
e.printStackTrace();
} finally {
replease(conn, stmt, rs);
}
return list;
}
返回的list里面的对象的变量值全是null,但是为什么是null,我就不知道了,想不明白是哪里的错