使用java代码实现简单的ID自增demo
时间: 2023-10-02 22:08:28 浏览: 56
可以使用Java中的AtomicInteger类实现简单的ID自增。
以下是一个示例代码:
```java
import java.util.concurrent.atomic.AtomicInteger;
public class IdGenerator {
private static final AtomicInteger counter = new AtomicInteger(0);
public static int getNextId() {
return counter.incrementAndGet();
}
}
```
在这个示例中,我们使用了AtomicInteger类来维护一个计数器。getNextId()方法将计数器的值自增,并返回此时的值作为新的ID。由于AtomicInteger类是线程安全的,因此不需要使用synchronized关键字来保证并发安全。
可以在需要生成新ID时调用getNextId()方法即可。
相关问题
springboot+ajax+layui+mysql实现注册(id自增,姓名,密码,部门,入职时间,性别,年龄)
1. 创建数据库表
在MySQL中创建一个名为user的表,表结构如下:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`department` varchar(20) DEFAULT NULL,
`hire_date` date DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 创建SpringBoot项目
创建一个SpringBoot项目,并在pom.xml文件中添加以下依赖:
```xml
<!-- SpringBoot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
```
3. 配置数据库连接
在application.properties文件中配置数据库连接信息:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
4. 创建实体类
创建一个名为User的实体类,并使用Lombok注解简化代码:
```java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String name;
private String password;
private String department;
private Date hireDate;
private String gender;
private Integer age;
}
```
5. 创建Mapper接口
创建一个名为UserMapper的Mapper接口,并在其中定义增加用户的方法:
```java
@Mapper
public interface UserMapper {
@Insert("INSERT INTO user(name, password, department, hire_date, gender, age) VALUES(#{name}, #{password}, #{department}, #{hireDate}, #{gender}, #{age})")
void addUser(User user);
}
```
6. 创建Controller
创建一个名为UserController的Controller,并在其中定义增加用户的方法:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/addUser")
public String addUser(@RequestBody User user) {
userMapper.addUser(user);
return "success";
}
}
```
7. 创建前端页面
使用Layui框架创建一个名为register.html的前端页面,并在其中添加以下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
<link rel="stylesheet" href="layui/css/layui.css">
<script src="layui/layui.js"></script>
</head>
<body>
<div class="layui-container">
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-block">
<input type="text" name="name" required lay-verify="required" placeholder="请输入姓名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-block">
<input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门</label>
<div class="layui-input-block">
<input type="text" name="department" required lay-verify="required" placeholder="请输入部门" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">入职时间</label>
<div class="layui-input-block">
<input type="text" name="hireDate" required lay-verify="required" placeholder="请选择入职时间" autocomplete="off" class="layui-input" id="hireDate">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="gender" value="男" title="男" checked>
<input type="radio" name="gender" value="女" title="女">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">年龄</label>
<div class="layui-input-block">
<input type="number" name="age" required lay-verify="required" placeholder="请输入年龄" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
<script>
//Demo
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#hireDate' //指定元素
});
});
layui.use('form', function(){
var form = layui.form;
//监听提交
form.on('submit(formDemo)', function(data){
console.log(data.field);
$.ajax({
url: "/user/addUser",
type: "POST",
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data.field),
success: function(res) {
if (res === "success") {
alert("注册成功!");
} else {
alert("注册失败!");
}
}
});
return false;
});
});
</script>
</body>
</html>
```
8. 运行项目
在浏览器中输入http://localhost:8080/register.html,即可进入用户注册页面。在页面中填写用户信息并点击“立即提交”按钮,即可完成用户注册。注册成功后会弹出提示框。可以在MySQL中查看是否添加了新的用户。
springboot+mybatis-plus+Ajax+layui+mysql实现员工注册(id自增,姓名,年龄,性别,部门,入职时间,密码)
本篇文章将介绍如何使用springboot、mybatis-plus、Ajax、layui以及mysql实现员工注册的基本功能,包括自增id、姓名、年龄、性别、部门、入职时间以及密码。具体步骤如下:
1.创建mysql数据库并创建员工表
首先,在mysql中创建一个名为employee的数据库,并在其中创建一个名为emp的员工表,包括以下字段:
id:员工id,自增字段
name:员工姓名
age:员工年龄
gender:员工性别
dept:员工所在部门
hiredate:员工入职时间
password:员工登录密码
2.在pom.xml文件中添加所需依赖
在pom.xml文件中加入spring-boot-starter-web、mybatis-plus-boot-starter、mysql-connector-java、spring-boot-starter-tomcat、lombok、fastjson、junit等必要的依赖(版本根据自己的项目需求选择)。
3.创建Emp实体类
在实体类中定义员工的id、姓名、年龄、性别、部门、入职时间以及密码,其中id使用自增注解实现。
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class Emp {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private Integer gender;
private String dept;
private String hiredate;
private String password;
}
4.创建EmpDao接口
使用mybatis-plus的BaseMapper接口进行DAO操作,继承BaseMapper<Emp>即可。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface EmpDao extends BaseMapper<Emp> {
}
5.创建EmpServcie接口及其实现类EmpServiceImpl
在EmpServcie接口中定义员工注册所需的方法addEmp(Emp emp),具体实现在EmpServiceImpl中。
import com.baomidou.mybatisplus.extension.service.IService;
public interface EmpServcie extends IService<Emp> {
boolean addEmp(Emp emp);
}
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class EmpServiceImpl extends ServiceImpl<EmpDao, Emp> implements EmpServcie {
@Autowired
private EmpDao empDao;
@Override
public boolean addEmp(Emp emp) {
return empDao.insert(emp) > 0;
}
}
6.创建EmpController控制器
在EmpController中实现员工注册功能,使用Ajax技术实现前后端互动。
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/emp")
public class EmpController {
@Autowired
private EmpServcie empServcie;
/**
* 员工注册
*
* @param empJson
* @return
*/
@PostMapping("/add")
@ResponseBody
public JSONObject addEmp(@RequestBody JSONObject empJson) {
JSONObject jsonObject = new JSONObject();
String name = empJson.getString("name");
int age = empJson.getInteger("age");
int gender = empJson.getInteger("gender");
String dept = empJson.getString("dept");
String hiredate = empJson.getString("hiredate");
String password = empJson.getString("password");
Emp emp = new Emp();
emp.setName(name);
emp.setAge(age);
emp.setGender(gender);
emp.setDept(dept);
emp.setHiredate(hiredate);
emp.setPassword(password);
if (empServcie.addEmp(emp)) {
jsonObject.put("msg", "success");
} else {
jsonObject.put("msg", "fail");
}
return jsonObject;
}
}
7.创建员工注册页面
使用layui框架实现员工注册页面,引入layui需要的样式和脚本文件,使用AJAX将表单数据传输给后端实现员工注册。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>员工注册</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.4/css/layui.css">
</head>
<body>
<form class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-block">
<input type="text" name="name" placeholder="请输入姓名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">年龄</label>
<div class="layui-input-block">
<input type="number" name="age" placeholder="请输入年龄" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="gender" value="1" title="男" checked>
<input type="radio" name="gender" value="0" title="女">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门</label>
<div class="layui-input-block">
<select name="dept">
<option value="技术部">技术部</option>
<option value="市场部">市场部</option>
<option value="人力资源部">人力资源部</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">入职时间</label>
<div class="layui-input-block">
<input type="text" name="hiredate" placeholder="请输入入职时间" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-block">
<input type="password" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/layui/2.5.4/layui.all.js"></script>
<script>
layui.use('form', function () {
var $ = layui.jquery, form = layui.form;
//监听提交
form.on('submit(formDemo)', function (data) {
var name = $("#name").val();
var age = $("#age").val();
var gender = $("input[name='gender']:checked").val();
var dept = $("#dept").val();
var hiredate = $("#hiredate").val();
var password = $("#password").val();
var jsonData = {
"name": name,
"age": age,
"gender": gender,
"dept": dept,
"hiredate": hiredate,
"password": password
};
console.log(jsonData);
$.ajax({
url: "/emp/add",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(jsonData),
dataType: "json",
success: function (result) {
if (result.msg === "success") {
alert("注册成功");
} else {
alert("注册失败");
}
},
error: function () {
alert("服务器异常");
}
});
return false;
});
});
</script>
</body>
</html>
以上便是使用springboot、mybatis-plus、Ajax、layui以及mysql实现员工注册(id自增,姓名,年龄,性别,部门,入职时间,密码)的全部步骤。通过以上的代码,我们可以达到员工注册的基本功能,同时也可以通过此次案例学习如何使用Ajax技术实现前后端的数据传输,也可以了解如何使用mybatis-plus实现在自增id的情况下进行数据操作。