校验int为非空
时间: 2023-11-28 19:50:36 浏览: 141
在Java中,int是一种基本数据类型,它不能为null(空)。如果想要校验一个int是否为0或者为null,可以使用下面的代码:
```java
public boolean isNotNullOrZero(Integer number) {
return number != null && number != 0;
}
```
这个方法接收一个Integer类型的参数,并且判断这个参数是否为null或者为0。如果不是,则返回true,否则返回false。注意,这里使用的是Integer而不是int,因为int不能为null,而Integer可以为null。如果要校验一个int类型的变量是否为0,可以直接使用以下代码:
```java
public boolean isNotZero(int number) {
return number != 0;
}
```
这个方法接收一个int类型的参数,并且判断这个参数是否为0。如果不是,则返回true,否则返回false。
相关问题
使用SpringMVC编写代码实现图书的新增功能 1.编写视图层JSP代码,页面提供表单,由用户填写图书名称,出版社,出版日期,作者,定价,ISBN并提交。 2.编写控制层Java代码,获取视图层提交的表单请求,控制方法注入表单项参数,控制层完成JavaBean封装和业务层代码调用。 3.编写业务层Java代码,将控制层传输的JavaBean进行非空校验然后调用持久层代码。 4.编写持久层Java代码,将经过控制层校验的JavaBean转换成SQL语句并向MySQL数据库Test的book表插入一条新增记录。 5.编写视图层JSP代码,显示新增成功或者失败及失败原因。 其中,Test数据库的book表结构如下表1所示: 表1:book表结构 字段ID 字段名称 字段类型 约束 bookId 图书编号 int 非空,自增长,主键 bookName 图书名称 varchar(30) 非空 press 出版社 varchar(20) 非空 pressDate 出版日期 date 非空,不晚于当前时间 author 作者 varchar(10) 非空 price 定价 money 非空 ISBN ISBN char(13) 非空 注意事项: 1.页面表单不需要填写图书编号,而交给数据库自增长生成编号。 2.持久层代码使用JDBC完成,允许使用ORM框架。 3.必须使用SpringMVC框架,可以使用Spring的IoC。
下面是代码实现:
1. 编写视图层JSP代码,页面提供表单
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增图书</title>
</head>
<body>
<h2>新增图书</h2>
<form action="addBook" method="post">
<label>图书名称:</label>
<input type="text" name="bookName" required><br>
<label>出版社:</label>
<input type="text" name="press" required><br>
<label>出版日期:</label>
<input type="date" name="pressDate" required><br>
<label>作者:</label>
<input type="text" name="author" required><br>
<label>定价:</label>
<input type="number" name="price" required><br>
<label>ISBN:</label>
<input type="text" name="ISBN" required><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
2. 编写控制层Java代码,获取视图层提交的表单请求,控制方法注入表单项参数,控制层完成JavaBean封装和业务层代码调用。
```java
@Controller
public class BookController {
@Autowired
private BookService bookService;
@RequestMapping("/addBook")
public ModelAndView addBook(@RequestParam("bookName") String bookName,
@RequestParam("press") String press, @RequestParam("pressDate") Date pressDate,
@RequestParam("author") String author, @RequestParam("price") BigDecimal price,
@RequestParam("ISBN") String ISBN) {
Book book = new Book();
book.setBookName(bookName);
book.setPress(press);
book.setPressDate(pressDate);
book.setAuthor(author);
book.setPrice(price);
book.setISBN(ISBN);
String result = bookService.addBook(book);
ModelAndView modelAndView = new ModelAndView();
if(result == null) {
modelAndView.setViewName("add_result");
modelAndView.addObject("result", "添加成功");
} else {
modelAndView.setViewName("add_result");
modelAndView.addObject("result", "添加失败,原因:" + result);
}
return modelAndView;
}
}
```
3. 编写业务层Java代码,将控制层传输的JavaBean进行非空校验然后调用持久层代码。
```java
@Service
public class BookService {
@Autowired
private BookDao bookDao;
public String addBook(Book book) {
if(book.getBookName() == null || book.getBookName().equals("")) {
return "图书名称不能为空";
}
if(book.getPress() == null || book.getPress().equals("")) {
return "出版社不能为空";
}
if(book.getPressDate() == null || book.getPressDate().after(new Date())) {
return "出版日期不能为空且不能晚于当前时间";
}
if(book.getAuthor() == null || book.getAuthor().equals("")) {
return "作者不能为空";
}
if(book.getPrice() == null || book.getPrice().compareTo(BigDecimal.ZERO) <= 0) {
return "定价不能为空且必须大于0";
}
if(book.getISBN() == null || book.getISBN().equals("")) {
return "ISBN不能为空";
}
try {
bookDao.addBook(book);
return null;
} catch(Exception e) {
e.printStackTrace();
return "数据库异常";
}
}
}
```
4. 编写持久层Java代码,将经过控制层校验的JavaBean转换成SQL语句并向MySQL数据库Test的book表插入一条新增记录。
```java
@Repository
public class BookDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addBook(Book book) {
String sql = "insert into book(bookName, press, pressDate, author, price, ISBN) values (?, ?, ?, ?, ?, ?)";
jdbcTemplate.update(sql, book.getBookName(), book.getPress(), book.getPressDate(), book.getAuthor(), book.getPrice(), book.getISBN());
}
}
```
5. 编写视图层JSP代码,显示新增成功或者失败及失败原因。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增结果</title>
</head>
<body>
<h2>${result}</h2>
<a href="addBookPage">返回</a>
</body>
</html>
```
注意事项:
1. 页面表单不需要填写图书编号,而交给数据库自增长生成编号。
2. 持久层代码使用JDBC完成,允许使用ORM框架。
3. 必须使用SpringMVC框架,可以使用Spring的IoC。
提交要求:
1. 使用eclipseForJavaEE进行开发。
2. 将代码打包成war包并上传至服务器,提供war包下载链接。
3. 提供MySQL数据库Test的book表结构及插入数据的SQL语句。
MySQL数据库Test的book表结构及插入数据的SQL语句如下:
```sql
CREATE TABLE `book` (
`bookId` int(11) NOT NULL AUTO_INCREMENT COMMENT '图书编号',
`bookName` varchar(30) NOT NULL COMMENT '图书名称',
`press` varchar(20) NOT NULL COMMENT '出版社',
`pressDate` date NOT NULL COMMENT '出版日期',
`author` varchar(10) NOT NULL COMMENT '作者',
`price` decimal(10,2) NOT NULL COMMENT '定价',
`ISBN` char(13) NOT NULL COMMENT 'ISBN',
PRIMARY KEY (`bookId`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='图书';
```
Java校验参数工具类,包括长度、非空、正则、分组校验
好的,以下是一个Java校验参数工具类的示例,实现了长度、非空、正则、分组校验:
```java
import java.util.regex.Pattern;
public class ParamValidator {
/**
* 校验字符串长度是否在指定范围内
* @param str 字符串
* @param min 最小长度
* @param max 最大长度
* @return 校验结果
*/
public static boolean checkLength(String str, int min, int max) {
if (str == null) {
return false;
}
int len = str.length
阅读全文