使用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的情况下进行数据操作。

相关推荐

创建一张account表,若干个字段 account_id int类型(主键、自增) -->账户编号 account_name varchar类型(30长度) -->账户登录名 account_password varchar类型(30长度) -->账户登录密码 account_money double类型 -->账户余额 现有如下功能,首先需要用户注册或者登录,例如: "请选择:1. 注册 2.登录" "1" "请输入账号:**" "请输入密码:**" "请再次输入密码:**" "注册成功" (只有账号名不重复,并且两次密码一致时才可以注册成功) "请选择:1. 注册 2.登录" "2" "请输入账号:**" "请输入密码:**" "登录成功" (账号密码正确时显示登录成功) 登陆成功后有如下选择 请选择:1. 存钱 2. 取钱 3. 显示余额 4. 转账 5. 退出 其中存钱和取钱操作都是根据以登录的用户中的账户余额来进行修改 当用户选择转账时,提示用户输入对方账户登录名,后台查看该登录名是否存在, 如果存在则开始转账,转账时提示用户是否确认转账,确认后,转账的一方需要支付2%的手续费(例如:转账1000元,需要扣除1020元),转账成功后,一方扣钱,一方加钱(需要验证转账方余额是否充足) 例如: "4" "请输入对方账户:***" "账户不存在,请重新输入!" "请输入对方账户:***" "请输入转账数额:***" "是否确认转账?Y. 是 N. 否" "Y" "转账成功,转账费用**元,手续费**元" 自己创建mapper并设定所需抽象方法完成上述功能并进行测试!

最新推荐

recommend-type

java使用es查询的示例代码

本篇文章主要介绍了java使用es查询的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

JAVA实现长连接(含心跳检测Demo)

主要介绍了JAVA实现长连接(含心跳检测Demo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

java实现图片滑动验证(包含前端代码)

主要为大家详细介绍了Java实现图片滑动验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Java上传文件进度条的实现方法(附demo源码下载)

主要介绍了Java上传文件进度条的实现方法,可简单实现显示文件上传比特数及进度的功能,并附带demo源码供读者下载参考,需要的朋友可以参考下
recommend-type

JavaScript中使用webuploader实现上传视频功能(demo)

来完成以下这个简单的demo 第一步,上传视频和上传 图片有什么区别么? 其实是没有的,因为执行的操作都是上传,所以说我们并不用担心上传的问题。 但是webuploader实际上是限制了你上传的参数(这里指的是限制了你的...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。