用ssh做一个简单的增删改查(1)

    首先用eclipse建一个web工程,将工程改为utf-8。建好用到的包层,entity,dao,service,action层,并写一个简单的index.jsp主页。

导入ssh需要的jar包,建立三个框架的配置文件,然后先做一个增加用户的功能

首先在entity层建一个user对象:

@Entity
@Table(schema="sshdb",name="tb_user")
//如果是mysql此处的schema的值应该是数据库名称,如果是Oracle数据库,表示的就是用户
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String userAddress;
private int userAge;
private String userName;
private String passWord;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}}

给到dao、service层建立一个impl的资源包层用来写实现的代码

//增加用户

@Override
public void addUser(User user) {
// TODO Auto-generated method stub
Session cs = this.sessionFactory.getCurrentSession();
cs.save(user);

}

service层调用dao层:

@Override
@Transactional
public void addUser(User user) {
// TODO Auto-generated method stub
this.userdao.addUser(user);

}

注:@Transactional注解不能忘记加,不然配置文件加载时扫不到。

在action层掉用调用service层

@Action(value="addUser",results={@Result(name="adduser",location="/success.jsp")})
public String addUser(){
this.getUserService().addUser(user);
return "adduser";

}

如果功能实现成功则跳转到success.jsp页面

下面我们来写一下index.jsp网页:

<div id="container">
<form action="admin/addUser" id="ff" method="post">
<div class="col-md-4">
用户名:<input id="number" type="text" name="user.userName">
</div>
<div class="col-md-4">
密码:<input id="pname" type="password" name="user.passWord">
</div>
</br>
</br>
<input type="submit" class="btn" id="qd" value="提交">

</form></div>

简单写一个添加的表单,action写相对路径时候记得核对好,往action层传过去用户名和密码,action层新建一个user对象,作为依赖接受传来的userName和userPassWord。我们为了更加完善增加用户的功能,决定利用ajax去判断当前用户是否已经存在去提升下功能的健壮性。

这次我们从jsp开始写,具体实现如下:

首先我们要在当前jsp文件里写一个ajax去判断后台是否存在这个用户

$(function(){

$("#number").mouseleave(function(){

var user1=$("#number").val();

$.ajax({

    url:'admin/exUser',

    type:'get',

data:{"userName":user1},

dataType:'text',

success:function(data){

if(data==1){

alert("用户名已存在")}

}

})

})

})

既然在ajax层做了规定那么action层应该写出对应的text传值

@Action(value="exUser")
public void existingUser() throws IOException{
boolean b = this.getUserService().existingUser(userName);
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
if(b){
out.print(1);
//如果存在返回1
}
else{
out.print(2);
//如果不存在返回2
}
out.close();

}

因为是通过userName判断所以只传一个userName值就可以了。

service层写判断依据

@Override
@Transactional
public boolean existingUser(String username) {
System.out.println(username);
List<User> fb = this.userdao.findUserByUserName(username);
if (fb.size()<1){
return false;
}else{
return true;
}

}

一样不能忘了加@Transactional注解,再写dao层的放法:

@Override
public List<User> findUserByUserName(String username) {
Session cs = this.sessionFactory.getCurrentSession();
Query q = cs.createQuery("from User where userName=?");
q.setParameter(0, username);
List list = q.list();

return list;

因为判断事务都是在service层完成的所以这里可以返回一个list集合。

完成上述步骤一个简单的用户添加小功能就算是完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值