為什么新增女神的時(shí)候,會(huì)在isdel的字段位置報(bào)null
新增女神,除了id,user_name兩個(gè)字段,其他的字段默認(rèn)為null,但是新增女神的時(shí)候,只輸入姓名,性別,年齡,郵箱,手機(jī)號(hào),新增報(bào)錯(cuò),create_user和update_user我也沒(méi)有輸入,也沒(méi)有報(bào)錯(cuò)偏偏在isdel報(bào)錯(cuò)。
我給isdel的字段賦值后,新增成功了,也沒(méi)有報(bào)錯(cuò),請(qǐng)各位同學(xué)幫忙看下。
歡迎來(lái)到女神禁區(qū):
下面是女神禁區(qū)的功能列表:
[MAIN/M]:主菜單
[QUERY/Q]:查看女神的全部信息
[GET/G]:查看某位女神的詳細(xì)信息
[ADD/A]:添加女神信息
[UPDATE/U]:更新女神信息
[DELETE/D]:刪除女神
[SEARCH/S]:查詢女神信息(根據(jù)姓名,手機(jī)號(hào)來(lái)查詢)
[EXIT/E]:退出女神禁區(qū)
[BREAK/B]:退出當(dāng)前功能,返回主菜單
A
請(qǐng)說(shuō)出女神的[姓名]
xioa
請(qǐng)輸出女神的[性別]
1
請(qǐng)輸出女神的[年齡]
21
請(qǐng)輸出女神的[生日],格式為yyyy-MM-dd
1995-4-9
請(qǐng)輸入女神的[郵箱]
123@qq.com
請(qǐng)輸出女神的[手機(jī)號(hào)]
123123123
請(qǐng)輸入女神的[是否刪除]
2
新增女神成功
數(shù)據(jù)庫(kù)的表創(chuàng)建語(yǔ)句
CREATE TABLE `imooc_goddess` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `user_name` varchar(30) NOT NULL,
? `sex` int(11) DEFAULT NULL,
? `age` int(11) DEFAULT NULL,
? `birthday` date DEFAULT NULL,
? `email` varchar(30) DEFAULT NULL,
? `mobile` varchar(11) DEFAULT NULL,
? `create_user` varchar(30) DEFAULT NULL,
? `create_date` date DEFAULT NULL,
? `update_user` varchar(30) DEFAULT NULL,
? `update_date` date DEFAULT NULL,
? `isdel` int(11) DEFAULT NULL,-----------這里默認(rèn)為null啊
? PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
?? // 新增女神
?? ?public void addGoddess(Goddess g) throws Exception {
?? ??? ?Connection conn = DBUtil.getConnection();
?? ??? ?String sql = ""+
?? ??? ??? ??? ?"insert into imooc_goddess"+
?? ??? ??? ??? ?"(user_name,sex,age,birthday,email,mobile,create_user,"+
?? ??? ??? ??? ?"create_date,update_user,update_date,isdel) values"+
?? ??? ??? ??? ?"(?,?,?,?,?,?,?,current_date(),?,current_date(),?)";
?? ??? ?PreparedStatement pstmt = conn.prepareStatement(sql);
?? ??? ?
?? ??? ?pstmt.setString(1, g.getUser_name());
?? ??? ?pstmt.setInt(2, g.getSex());
?? ??? ?pstmt.setInt(3, g.getAge());
?? ??? ?pstmt.setDate(4, new Date(g.getBirthday().getTime()));
?? ??? ?pstmt.setString(5, g.getEmail());
?? ??? ?pstmt.setString(6, g.getMobile());
?? ??? ?pstmt.setString(7, g.getCreate_user());
?? ??? ?pstmt.setString(8, g.getUpdate_user());
?? ??? ?pstmt.setInt(9, g.getIsdel());----------------這個(gè)位置報(bào)錯(cuò)null
?? ??? ?pstmt.execute();
?? ?}
這是后邊我加上了 給isdel賦值
else if (OPERATION_ADD.equals(in) || OPERATION_ADD.substring(0, 1).equals(in)
?? ??? ??? ??? ??? ?|| OPERATION_ADD.equals(previous)) {
?? ??? ??? ??? ?previous = OPERATION_ADD;
?? ??? ??? ??? ?// 根據(jù)step的值來(lái)執(zhí)行新增女神的第幾步操作
?? ??? ??? ??? ?if (1 == step) {
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)說(shuō)出女神的[姓名]");
?? ??? ??? ??? ?} else if (2 == step) {
?? ??? ??? ??? ??? ?goddess.setUser_name(in);
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸出女神的[性別]");
?? ??? ??? ??? ?} else if (3 == step) {
?? ??? ??? ??? ??? ?goddess.setSex(Integer.valueOf(in));
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸出女神的[年齡]");
?? ??? ??? ??? ?} else if (4 == step) {
?? ??? ??? ??? ??? ?goddess.setAge(Integer.valueOf(in));
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸出女神的[生日],格式為yyyy-MM-dd");
?? ??? ??? ??? ?} else if (5 == step) {
?? ??? ??? ??? ??? ?SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
?? ??? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ??? ?Date birthday = sdf.parse(in);
?? ??? ??? ??? ??? ??? ?goddess.setBirthday(birthday);
?? ??? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸入女神的[郵箱]");
?? ??? ??? ??? ??? ?} catch (ParseException e) {
?? ??? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ??? ??? ?System.out.println("您輸入的格式有誤,請(qǐng)重新輸入");
?? ??? ??? ??? ??? ??? ?step = 3;// 需要減一次,下面會(huì)自增1
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?} else if (6 == step) {
?? ??? ??? ??? ??? ?goddess.setEmail(in);
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸出女神的[手機(jī)號(hào)]");
?? ??? ??? ??? ?} else if (7 == step) {
?? ??? ??? ??? ??? ?goddess.setMobile(in);
?? ??? ??? ??? ??? ?System.out.println("請(qǐng)輸入女神的[是否刪除]");
?? ??? ??? ??? ?} else if (8 == step) {
?? ??? ??? ??? ??? ?goddess.setIsdel(Integer.valueOf(in));
?? ??? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ??? ?action.add(goddess);
?? ??? ??? ??? ??? ??? ?System.out.println("新增女神成功");
?? ??? ??? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ??? ??? ?System.out.println("新增女神失敗");
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if (OPERATION_ADD.equals(previous)) {
?? ??? ??? ??? ?step++;
?? ??? ??? ?}
2019-06-08
dao里調(diào)用了goddess的創(chuàng)建人更新人還有isdel,但是你在view里沒(méi)有給它賦值啊,導(dǎo)致的空指針,要想解決,在Goddess.java里給這些屬性賦值為null就行了,或者在view里添加通過(guò)scanner為這3個(gè)屬性賦值。這個(gè)和數(shù)據(jù)庫(kù)的語(yǔ)句沒(méi)關(guān)系的,因?yàn)槟愕膁ao里的add方法里的那些?不會(huì)自動(dòng)賦值的。