java异常处理,报异常的话怎么处理对象值,并持久化到数据库中

在service层中有一个创建用户的方法,用户有状态字段0创建成功,1创建失败。如果报异常,怎么将status值改为1(创建失败)存入到数据库中publicStringc... 在service层中有一个创建用户的方法,用户有状态字段0创建成功,1创建失败。
如果报异常,怎么将status值改为1(创建失败)存入到数据库中
public String createUser(){
try{
User user = new User();
user.setName("小明");
user.setStatus(0);//将状态设置为成功
userMapper.insert(user);
}catch(IOException e){
//报异常,将status设置为1存到库中

}
}
展开
 我来答
百毒千毒
2018-04-03 · TA获得超过4737个赞
知道大有可为答主
回答量:2499
采纳率:88%
帮助的人:845万
展开全部
//没看到有人回答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程
//我写个基础点的,就是一个序列化与反序列化的过程,你这个是要侦测到参数异常的时候
//才开始进行序列化操作的,其实我觉得原理应该都是一样的吧!
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
public class ObjectTest {
File path = new File("K:/IO测试/Baidu");//路径!
static File file = null;
String name = null;
public static void main(String[] args) {
ObjectTest obj=new ObjectTest();
obj.createUser();//创建对象,传入非法参数进行捕捉!

User u=obj.des();//反序列化过程!
if(u!=null)
System.out.println("\r\n查看对象属性:\t"+u);
}
//1.序列化过程!
public String createUser() {
ObjectOutputStream oos = null;
ArrayList<User> userMapper = new ArrayList<>();
User user = new User();
try {
user.setName("小明");
name = user.getName() + ".object";
user.setStatus(0);// 将状态设置为成功
userMapper.add(user);
} catch (Exception e) {
// 报异常,将status设置为1存到库中
System.out.println("侦测到参数异常,即将存入数据库!");
user.setStatus(1);
File tem = new File(path, name);
if (!tem.exists()) {// 如果异常文件不存在,就创建!
file = new File(path, name);
try {
oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(user);
System.out.println("正在写入数据!");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else {
System.out.println("数据库中已经有数据,写入失败,直接读取!\r\n");
}

} finally {
if (oos != null) {
try {
oos.close();
System.out.println("存入完成!\r\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
return name;
}
//2.反序列化过程:也就是读取序列化文件的过程!
private User des() {
ObjectInputStream ois=null;
File filed=new File(path,name);
if(!filed.exists()) {
System.out.println("数据不存在,失败!");
return null;
}
try {
System.out.println("数据存在,开始反序列化!");
ois=new ObjectInputStream(new FileInputStream(new File(path,name)));
return (User)ois.readObject();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e){
e.printStackTrace();

} finally {
if(ois!=null) {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}
//角色类
class User implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int status;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
if (status <= 0) {
throw new RuntimeException("");
}
this.status = status;
}
public String toString() {
return "姓名:"+name + ";\t年龄:" + status;
}
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式