最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring boot+mybatis+thymeleaf 實現(xiàn)登錄注冊增刪改查功能的示例代碼

 更新時間:2020年07月15日 09:50:21   作者:狴顏丶領(lǐng)銜  
這篇文章主要介紹了Spring boot+mybatis+thymeleaf 實現(xiàn)登錄注冊增刪改查功能的示例代碼,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本文重在實現(xiàn)理解,過濾器,業(yè)務(wù),邏輯需求,樣式請無視。。

項目結(jié)構(gòu)如下

1.idea新建Spring boot項目,在pom中加上thymeleaf和mybatis支持。pom.xml代碼如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.1.3.RELEASE</version>
 <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <groupId>com.jz</groupId>
 <artifactId>table</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>table</name>
 <description>Demo project for Spring Boot</description>

 <properties>
 <java.version>1.8</java.version>
 </properties>

 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
 </dependency>
 
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
 </dependency>

 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.1</version>
 </dependency>
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
 </dependency>

 </dependencies>

 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
 </build>

</project>

2. 在項目resources目錄下新建mybatis文件夾,用于存放mybatis配置文件。 在 application.properties 中配置本地數(shù)據(jù)源和mybatis配置文件地址, application.properties代碼如下

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=用戶名
spring.datasource.password=密碼
spring.jpa.showSql=true

mybatis: 
mybatis.type-aliases-package=com.jz.table.entity 
mybatis.mapper-locations=mybatis/*.xml

com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的,需要指定時區(qū)serverTimezone

2.2在啟動類上加上掃描的Dao包

package com.jz.table;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.jz.table.dao")
public class TableApplication {

 public static void main(String[] args) {
 SpringApplication.run(TableApplication.class, args);
 }

}

3.數(shù)據(jù)庫建兩個表admin和userinfo用于登錄和操作用

2019.10.3 現(xiàn)在mysql不能用admin作為表名了,請注意一下

4.開始寫代碼

entity:實體代碼

1.Admin實體類

package com.jz.table.entity;

public class Admin {
 private Integer id;
 private String name;
 private Integer password;
 private String job;
 
 public Admin() {
 }

 public Admin(Integer id, String name, Integer password, String job) {
 this.id = id;
 this.name = name;
 this.password = password;
 this.job = job;
 }

 public Integer getId() {
 return id;
 }

 public void setId(Integer id) {
 this.id = id;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public Integer getPassword() {
 return password;
 }

 public void setPassword(Integer password) {
 this.password = password;
 }

 public String getJob() {
 return job;
 }

 public void setJob(String job) {
 this.job = job;
 }
}

2.UserInfo實體類

package com.jz.table.entity;

public class UserInfo {
 private Integer id;
 private String name;
 private Integer age;
 private String sex;
 public UserInfo() {
 }
 public UserInfo(Integer id, String name, Integer age, String sex) {
 this.id = id;
 this.name = name;
 this.age = age;
 this.sex = sex;
 }
 public Integer getId() {
 return id;
 }

 public void setId(Integer id) {
 this.id = id;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public Integer getAge() {
 return age;
 }

 public void setAge(Integer age) {
 this.age = age;
 }

 public String getSex() {
 return sex;
 }

 public void setSex(String sex) {
 this.sex = sex;
 }
}

Dao層代碼
1.AdminDao

package com.jz.table.dao;

import com.jz.table.entity.Admin;

public interface AdminDao {
 //登錄判斷
 Admin login(Admin admin);
 //注冊
 int addAdmin(Admin admin);
}

2.UserDao

package com.jz.table.dao;

import com.jz.table.entity.UserInfo;

import java.util.List;

public interface UserDao {
 //查
 List<UserInfo> findall();
 //增
 int adduser(UserInfo user);
 //根據(jù)Id查,用于修改時頁面回顯數(shù)據(jù)
 UserInfo findByid(Integer id);
 //修改
 int updateUser(UserInfo user);
 //刪除
 int delUser(Integer id);
}

3.XML文件,因為沒有業(yè)務(wù)邏輯,service省了,controller中直接引入dao
1.AdminMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.jz.table.dao.AdminDao">
 <select id="login" parameterType="com.jz.table.entity.Admin" resultType="com.jz.table.entity.Admin">
 select name,job FROM admin WHERE name = #{name} AND password = #{password}
 </select>

 <insert id="addAdmin" parameterType="com.jz.table.entity.Admin">
 INSERT INTO admin (name,password,job) VALUES (#{name},#{password},#{job});
 </insert>
</mapper>

2.UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.jz.table.dao.UserDao">
 <select id="findall" resultType="com.jz.table.entity.UserInfo">
 select * from userinfo
 </select>

 <insert id="adduser" parameterType="com.jz.table.entity.UserInfo">
 INSERT INTO userinfo(name,age,sex) VALUES (#{name},#{age},#{sex})
 </insert>

 <select id="findByid" parameterType="java.lang.Integer" resultType="com.jz.table.entity.UserInfo">
 SELECT * FROM userinfo where id = #{id}
 </select>
 
 <update id="updateUser" parameterType="com.jz.table.entity.UserInfo">
 update userinfo SET name=#{name },age =#{age},sex=#{sex} WHERE id = #{id}
 </update>

 <delete id="delUser" parameterType="java.lang.Integer">
 DELETE from userinfo WHERE id = #{id}
 </delete>
</mapper>

4.頁面,在templates文件夾下新建public和user文件夾用來存放公共頁面和user操作頁面
public文件夾下新建成功、失敗提示頁
1.success.html

<!DOCTYPE html>
<!--引入thymeleaf-->
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head>
 <meta charset="UTF-8">
 <title>操作成功提示頁</title>

</head>
<body>
<h1>操作成功</h1>

<a href="/index" rel="external nofollow" rel="external nofollow" > 返回首頁</a>
</body>
</html>

2.false.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8">
 <title>操作失敗提示頁</title>
 <script th:src="@{/js/jquery-1.8.0.min.js}"></script>

</head>
<body>
<h1>操作失敗,請檢查數(shù)據(jù)重試</h1>
<input onclick="history.go(-1)" type="button" value="返回">

</body>
</html>

4.2在templates文件夾下新建login和register頁面作為登錄和注冊頁面
1.login.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>首頁</title>

 <style>
 /*a標(biāo)簽去下劃線和點擊不變色,div內(nèi)容居中*/
 a{
 text-decoration: none;
 color: #333333;
 }
 #idiv{text-align: center;border-radius: 20px;
 width: 300px;
 height: 350px;
 margin: auto;
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;}
 </style>
</head>
<body>
<div id="idiv">
 <form action="/gologin" method="post">
 請輸入姓名<input id="name" name="name" required="required"><br><br>
 請輸入密碼<input id="password" name="password" type="password" placeholder="僅支持正整數(shù)" required="required"><br><br>
 <input type="submit" value="登錄"> <button> <a href="/goregister" rel="external nofollow" >注冊</a></button>
 </form>
</div>
</body>
</html>

2.register.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8">
 <title>賬號注冊</title>
 <script th:src="@{/js/jquery-1.8.0.min.js}"></script>
</head>
<body>
<h2>賬號注冊</h2>
請輸入姓名:<input type="text" id="name"/><br><br>
請輸入密碼:<input type="password" id="password" placeholder="僅支持整數(shù)" /><br><br>
請確認(rèn)密碼:<input type="password" id="passwordTwo" placeholder="僅支持整數(shù)"/><br><br>
請選擇角色:<select id="job" style="width: 173px">
 <option value="管理員">管理員</option>
 </select><br><br>
<button onclick="register()">注冊</button>
</body>
<script>
 function register() {
 var name = $("#name").val();
 var password1 = $("#password").val();
 var password2 = $("#passwordTwo").val();
 var job = $("#job").val();
 if (Number(password1) == Number(password2)){
 $.post("/register",{name:name,password:password1,job:job},function (res) {
 if (res ==true){
  alert("注冊成功");
  window.location.href ="/login";
 } else {
  alert("注冊失敗,請檢查數(shù)據(jù)重試");
 }
 })
 }else {
 alert("兩次密碼不一致!");
 }
 }
</script>
</html>

3.controller中代碼

@Controller
public class TestController {
 @Resource
 private AdminDao ad;
 @Resource
 private UserDao ud;

 @RequestMapping("/login")//主頁
 public String index(){
 return "login";
 }

 @RequestMapping("/goregister")//去注冊頁面
 public String goregister(){
 return "register";
 }
 @RequestMapping("/register")//注冊
 @ResponseBody
 public boolean register(Admin admin){
 int i = ad.addAdmin(admin);
 if (i>0){
 return true;
 }else {
 return false;
 }
 }

 @RequestMapping("/gologin")//登錄獲取用戶信息存到seccion
 public String gologin(Admin admin,HttpServletRequest request,Model model){
 Admin aa = ad.login(admin);
 if (aa==null){
 return "public/false";
 }
 HttpSession session = request.getSession();
 session.setAttribute("aname",admin.getName());
 session.setAttribute("apassword",admin.getPassword());
 List<UserInfo> userlist = ud.findall();
 model.addAttribute("admin",aa);
 model.addAttribute("alist",userlist);
 return "user/index";
 }

 @RequestMapping("/index")//從其他頁面操作后返回列表頁面(重復(fù)登錄)
 public String login(Admin admin,Model model,HttpServletRequest request){
 HttpSession session = request.getSession();
 admin.setName((String) session.getAttribute("aname"));
 admin.setPassword((Integer) session.getAttribute("apassword"));
 Admin aa = ad.login(admin);
 List<UserInfo> userlist = ud.findall();
 model.addAttribute("admin",aa);
 model.addAttribute("alist",userlist);
 return "user/index";
 }
}

4.3user文件夾下新建index,addUser,updateUser頁面,作為主頁,添加,修改頁面

1.index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8">
 <title>首頁</title>
 <style>a{text-decoration:none}</style>
 <script th:src="@{/js/jquery-1.8.0.min.js}"></script>
</head>
<body>
歡迎你 :<input th:value="${admin.name}" style="border: none; outline: none"/><br><br><br><br>
<h2>人員信息維護(hù)</h2>
<table width="888" border="1">
 <thead>
 <tr>
 <th>id</th>
 <th>姓名</th>
 <th>年齡</th>
 <th>性別</th>
 <th>操作</th>
 </tr>
 <tr th:each="user:${alist}">
 <td align="center" th:text="${user.id}"></td>
 <td align="center" th:text="${user.name}"></td>
 <td align="center" th:text="${user.age}"></td>
 <td align="center" th:text="${user.sex}"></td>
 <td align="center"><a th:href="@{'/goupdate/'+${user.id}}" rel="external nofollow" >修改</a>
  <a th:href="@{'/godel/'+${user.id}}" rel="external nofollow" >刪除</a>
 </td>
 </tr>
 </thead>
</table>
<button><a href="/goadd" rel="external nofollow" >添加</a></button>
</body>
</html>

2.addUser.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8">
 <title>添加用戶</title>
 <script th:src="@{/js/jquery-1.8.0.min.js}"></script>
</head>
<body>
<h2>我是添加頁面</h2>

請輸入姓名:<input id="name" name="name" type="text" /><br><br>
請輸入年齡:<input id="age" name="age" type="text" /><br><br>
請選擇性別:<select id="sex" name="sex" style="width: 173px">
 <option value="男">男</option>
 <option value="女">女</option>
 </select><br><br>
<button onclick="goadd()" name="sub" id="sub">添加</button>
<button name="button" onclick="javascript:history.back(-1);">返回</button>
</body>
<script>
 function goadd() {
 var name = $("#name").val();
 var age = $("#age").val();
 var sex = $("#sex").val();
 $.post("/addUser",{name:name,age:age,sex:sex},function (res) {
 if (res==true){
 alert("添加成功")
 window.location.href ="/index";
 }else {
 alert("添加失敗,請檢查數(shù)據(jù)重試!");
 }
 })
 }
</script>
</html>

3.updateUser.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8">
 <title>修改用戶</title>
 <script th:src="@{/js/jquery-1.8.0.min.js}"></script>
</head>
<body>
<h2>這是修改頁面</h2>
<input type="hidden" id="id" th:value="${user.id}"><br><br>
請輸入姓名:<input id="name" th:value="${user.name}"/><br><br>
請輸入年齡:<input id="age" th:value="${user.age}"/><br><br>
請選擇性別:<select id="sex" style="width: 173px">
 <option value="男">男</option>
 <option value="女">女</option>
 </select><br><br>
<button onclick="goupdate()">修改</button> 
<button name="button" onclick="javascript:history.back(-1);">返回</button>
</body>
<script>
 function goupdate() {
 var id=$("#id").val();
 var name = $("#name").val();
 var age = $("#age").val();
 var sex = $("#sex").val();
 $.post("/update",{id:id,name:name,age:age,sex:sex},function (res) {
 if (res==true) {
 alert("修改成功");
 window.location.href="/index" rel="external nofollow" rel="external nofollow" ;
 }else {
 alert("修改失敗,請檢查數(shù)據(jù)重試!");
 }
 })
 }
</script>
</html>

4.controller中代碼

@RequestMapping("/goadd")//去添加頁面
public String goadd(){
 return "user/addUser";
}
@RequestMapping("/addUser")//添加信息
@ResponseBody
public boolean addUser(UserInfo user){
 int i = ud.adduser(user);
 if (i>0){
 return true;
 }else {
 return false;
 }
}
@RequestMapping("/goupdate/{id}")//去修改頁面,回顯數(shù)據(jù)
public String goupdate(@PathVariable("id") int id,Model model){
 UserInfo user = ud.findByid(id);
 model.addAttribute("user",user);
 return "user/updateUser";
}
@RequestMapping("/update")//修改
@ResponseBody
public boolean updateUser(UserInfo user){
 int i = ud.updateUser(user);
 if (i>0){
 return true;
 }else {
 return false;
 }
}
@RequestMapping("/godel/{id}")//刪除
public String delUser(@PathVariable("id") Integer id){
 ud.delUser(id);
 return "public/success";
}

5.完整controller代碼

package com.jz.table.controller;
import com.jz.table.dao.AdminDao;
import com.jz.table.dao.UserDao;
import com.jz.table.entity.Admin;
import com.jz.table.entity.UserInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;

@Controller
public class TestController {
 @Resource
 private AdminDao ad;
 @Resource
 private UserDao ud;

 @RequestMapping("/login")//主頁
 public String index(){
 return "login";
 }

 @RequestMapping("/goregister")//去注冊頁面
 public String goregister(){
 return "register";
 }
 @RequestMapping("/register")//注冊
 @ResponseBody
 public boolean register(Admin admin){
 int i = ad.addAdmin(admin);
 if (i>0){
 return true;
 }else {
 return false;
 }
 }

 @RequestMapping("/gologin")//登錄獲取用戶信息存到seccion
 public String gologin(Admin admin,HttpServletRequest request,Model model){
 Admin aa = ad.login(admin);
 if (aa==null){
 return "public/false";
 }
 HttpSession session = request.getSession();
 session.setAttribute("aname",admin.getName());
 session.setAttribute("apassword",admin.getPassword());
 List<UserInfo> userlist = ud.findall();
 model.addAttribute("admin",aa);
 model.addAttribute("alist",userlist);
 return "user/index";
 }

 @RequestMapping("/index")//從其他頁面操作后返回列表頁面(重復(fù)登錄)
 public String login(Admin admin,Model model,HttpServletRequest request){
 HttpSession session = request.getSession();
 admin.setName((String) session.getAttribute("aname"));
 admin.setPassword((Integer) session.getAttribute("apassword"));
 Admin aa = ad.login(admin);
 List<UserInfo> userlist = ud.findall();
 model.addAttribute("admin",aa);
 model.addAttribute("alist",userlist);
 return "user/index";
 }


 @RequestMapping("/goadd")//去添加頁面
 public String goadd(){
 return "user/addUser";
 }
 @RequestMapping("/addUser")//添加信息
 @ResponseBody
 public boolean addUser(UserInfo user){
 int i = ud.adduser(user);
 if (i>0){
 return true;
 }else {
 return false;
 }
 }
 @RequestMapping("/goupdate/{id}")//去修改頁面,回顯數(shù)據(jù)
 public String goupdate(@PathVariable("id") int id,Model model){
 UserInfo user = ud.findByid(id);
 model.addAttribute("user",user);
 return "user/updateUser";
 }
 @RequestMapping("/update")//修改
 @ResponseBody
 public boolean updateUser(UserInfo user){
 int i = ud.updateUser(user);
 if (i>0){
 return true;
 }else {
 return false;
 }
 }
 @RequestMapping("/godel/{id}")//刪除
 public String delUser(@PathVariable("id") Integer id){
 ud.delUser(id);
 return "public/success";
 }
 
}

效果如圖



到此這篇關(guān)于Spring boot+mybatis+thymeleaf 實現(xiàn)登錄注冊增刪改查功能的示例代碼的文章就介紹到這了,更多相關(guān)Spring boot mybatis thymeleaf 登錄注冊增刪改查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JVM 方法調(diào)用之動態(tài)分派(詳解)

    JVM 方法調(diào)用之動態(tài)分派(詳解)

    下面小編就為大家?guī)硪黄狫VM 方法調(diào)用之動態(tài)分派(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • java 增強(qiáng)型for循環(huán)語法詳解

    java 增強(qiáng)型for循環(huán)語法詳解

    增強(qiáng)型 for 循環(huán)(也稱為 “for-each” 循環(huán))是 Java 從 JDK 5 開始引入的一種便捷循環(huán)語法,旨在簡化對數(shù)組或集合類的迭代操作,這篇文章主要介紹了java 增強(qiáng)型for循環(huán) 詳解,需要的朋友可以參考下
    2025-04-04
  • Java設(shè)計模式之橋接模式的實現(xiàn)

    Java設(shè)計模式之橋接模式的實現(xiàn)

    今天給大家?guī)淼奈恼率荍ava設(shè)計模式的相關(guān)知識點,文中對橋接模式作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • 關(guān)于JDK源碼中的@author unascribed注釋閑談

    關(guān)于JDK源碼中的@author unascribed注釋閑談

    這篇文章主要介紹了關(guān)于JDK源碼中的@author unascribed注釋閑談,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java使用自定義注解實現(xiàn)函數(shù)測試功能示例

    Java使用自定義注解實現(xiàn)函數(shù)測試功能示例

    這篇文章主要介紹了Java使用自定義注解實現(xiàn)函數(shù)測試功能,結(jié)合實例形式分析了java自定義注解在函數(shù)測試過程中相關(guān)功能、原理與使用技巧,需要的朋友可以參考下
    2019-10-10
  • Java并發(fā)編程之對象的組合

    Java并發(fā)編程之對象的組合

    這篇文章主要介紹了Java并發(fā)編程之對象的組合,文章基于Java的相關(guān)資料展開主題內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • Java數(shù)據(jù)結(jié)構(gòu)中關(guān)于AVL樹的實現(xiàn)方法詳解

    Java數(shù)據(jù)結(jié)構(gòu)中關(guān)于AVL樹的實現(xiàn)方法詳解

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)中關(guān)于AVL樹的實現(xiàn)方法,AVL樹是高度平衡的二叉樹,它的特點是AVL樹中任何節(jié)點的兩個子樹的高度最大差別為1,本文主要給大家介紹了Java語言如何實現(xiàn)AVL樹,需要的朋友可以參考下
    2024-02-02
  • Java中正則表達(dá)式 .* 的含義講解

    Java中正則表達(dá)式 .* 的含義講解

    這篇文章主要介紹了Java中正則表達(dá)式 .* 的含義,通過舉例說明了正則表達(dá)式*,+,?的區(qū)別,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java中的Semaphore計數(shù)信號量詳細(xì)解析

    Java中的Semaphore計數(shù)信號量詳細(xì)解析

    這篇文章主要介紹了Java中的Semaphore計數(shù)信號量詳細(xì)解析,Semaphore?是一個計數(shù)信號量,必須由獲取它的線程釋放,常用于限制可以訪問某些資源的線程數(shù)量,例如通過?Semaphore?限流,需要的朋友可以參考下
    2023-11-11
  • java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語句

    java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語句

    在java中為多路分支選擇流程專門提供了switch語句,switch語句根據(jù)一個表達(dá)式的值,選擇運行多個操作中的一個,感興趣的朋友可以了解下
    2013-01-01

最新評論

梁河县| 全州县| 枣阳市| 凤山市| 玉龙| 绥江县| 新津县| 沙洋县| 呈贡县| 东至县| 卓尼县| 长寿区| 高尔夫| 资中县| 迁安市| 澄迈县| 仁化县| 南涧| 铅山县| 航空| 建湖县| 专栏| 广宗县| 潍坊市| 缙云县| 加查县| 乌鲁木齐县| 沾化县| 江西省| 北安市| 康平县| 娱乐| 营山县| 遵义市| 三明市| 泰宁县| 天水市| 阿合奇县| 天祝| 扬州市| 广汉市|