主頁 > 後端開發 > 【小白求助】為啥ideaMVC專案連接mysql一直卡在getConnection

【小白求助】為啥ideaMVC專案連接mysql一直卡在getConnection

2020-09-11 23:11:27 後端開發

【小白求助】idea右側database連接mysql成功,mysql驅動加載成功,url用戶名密碼正確但getConnection就是進不去
工具:idea、mysql
模式:jsp+servlet+javabean
思路:index為登錄頁面,插入js判斷跳轉到用戶/管理員處理頁面,userLogin_result呼叫userDAO檢驗賬號密碼,userDAO呼叫ConnDB獲取資料庫連接

專案結構:

以下是原始碼

index.jsp
<%@ page pageEncoding="utf-8" %>
<!DOCTYPE HTML>
<html>
<head>
    <title>登錄界面</title>
    <link rel="stylesheet" type="text/css" href="https://bbs.csdn.net/css/css.css" />
</head>
<body>
<form name="form1" action="./servlet/userLogin_result" method="post">
    <h1>圖書管理系統</h1>
    <input class=input_1 id=id size=15  name="id"  placeholder=賬號><br />
    <input class=input_1 id=password type=text size=15 name="password" placeholder=密碼><br />

    <span class="radio_box">
        <input type="radio" id="radio_1" name="type" value="https://bbs.csdn.net/topics/users" checked>
        <label for="radio_1"></label>
          普通用戶
        </span>
    <span class="radio_box">
        <input type="radio" id="radio_2" name="type" value="https://bbs.csdn.net/topics/admin">
        <label for="radio_2"></label>
        管理員
        </span><br/>
    <input class=input_3 type="button" onclick="login()" value="https://bbs.csdn.net/topics/登錄" />
    <input class=input_3 type="button"  onclick=document.form1.reset() value="https://bbs.csdn.net/topics/重置" />
</form>
<script type="text/javascript" src="https://bbs.csdn.net/topics/js/script.js"></script>
</body>
</html>



script.js
function login(){
if(form1.id.valuehttps://bbs.csdn.net/topics/===''){
alert('賬號不能為空!');
return false;
}
else if(form1.password.valuehttps://bbs.csdn.net/topics/===''){
alert('密碼不能為空!');
return false;
}
else{
if(form1.type.valuehttps://bbs.csdn.net/topics/==='users')
form1.action="/servlet/userLogin_result";
else
form1.action="/servlet/adminLogin_result";
}
form1.submit();
}

window.onload = function(){
var i3 = document.getElementsByClassName('input_3');
for(var i=0;i<i3.length;i++){
i3[i].onmouseover = function(){
this.style.backgroundColor = "#23271F";
this.style.color = "#fff";
}
i3[i].onmouseout = function(){
this.style.backgroundColor = "#fff";
this.style.color = "#23271F";
}
}
var pass = document.getElementById("password");
pass.onfocus = function(){
pass.type = "password";
}
}


userLogin_result.java
package servlet;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import DAO.UserDao;

public class userLogin_result extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        UserDao user = new UserDao();
        String Id = request.getParameter("id");
        String Password = request.getParameter("password");
        int id = Integer.parseInt(Id);
        int password = Integer.parseInt(Password);
        try {
            if (user.checkAccount(id, password)) {
                response.sendRedirect("../user.jsp");
            }
            else {
                response.sendRedirect("../index.jsp");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}


UserDao.java
package DAO;

import java.sql.*;
import com.arvin.db.ConnDB;

public class UserDao {
    Connection conn = null;
    ConnDB db = new ConnDB();

    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
        ConnDB.getConnection();
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
        ps.close();
        ConnDB.closeDb();
        return password == rs.getInt("u_password");
    }
}



ConnDB.java
package com.arvin.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class ConnDB {
    //資料庫的用戶名和密碼
    public static String username = "root";
    public static String password = "1999";

    //獲得連接物件,statement物件和結果集
    public static  Connection conn = null;
    public static Statement state = null;
    public static ResultSet  rs = null;

    //資料庫驅動,在剛開始下載的檔案中
    public static String driver_class = "com.mysql.cj.jdbc.Driver";

    //oilServer是資料庫名,其他的不變
    public static String url = "jdbc:mysql://localhost:3306/booksystem?serverTimezone=GMT";


    //獲得資料庫的連接的方法
    public static Connection getConnection(){
        try {
            Class.forName(driver_class);//指定連接型別
            System.out.println("load db driver success......");
            Properties info = new Properties();
            info.setProperty("user",username);//
            info.setProperty("password",password);
            conn = DriverManager.getConnection(url,info);//獲取連接
            System.out.println("get db connection success....");

        } catch (Exception e) {
            e.printStackTrace();
        }
        return  conn;
    }


    //執行資料庫的查詢操作,回傳的為結果集
    public static ResultSet excuteQuery(String sql){
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            return rs;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return rs;
    }


    //關閉資料庫
    public static void closeDb(){
        try {
            if(rs != null)
                rs.close();
            if(conn != null)
                conn.close();
            if(state != null)
                state.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}


index填寫表單選擇普通用戶登錄后顯示error500

mysql資料庫驅動加載成功:

但tomcat日志沒有顯示get db connection success....,說明應該是卡在了獲取連接階段
已知url用戶名密碼確認無誤
請教各位大神這究竟是哪里出了問題?

uj5u.com熱心網友回復:

不用這樣寫代碼,之間用jdbcTemplate去搞,簡單 多了,你不用管這些鏈接。

uj5u.com熱心網友回復:

參考 樓主 qq_42188444 的回復:
【小白求助】idea右側database連接mysql成功,mysql驅動加載成功,url用戶名密碼正確但getConnection就是進不去
工具:idea、mysql
模式:jsp+servlet+javabean
思路:index為登錄頁面,插入js判斷跳轉到用戶/管理員處理頁面,userLogin_result呼叫userDAO檢驗賬號密碼,userDAO呼叫ConnDB獲取資料庫連接

專案結構:


index填寫表單選擇普通用戶登錄后顯示error500
mysql資料庫驅動加載成功:
但tomcat日志沒有顯示get db connection success....,說明應該是卡在了獲取連接階段
已知url用戶名密碼確認無誤
請教各位大神這究竟是哪里出了問題?


我是沒看懂

 conn = DriverManager.getConnection(url,info);//獲取連接   這句是在干么,你已經有username和password了,為什么不直接用

 conn = DriverManager.getConnection(url,username,passowrd);

uj5u.com熱心網友回復:

而且ConnDB里全是靜態方法,不要需要
 ConnDB db = new ConnDB();初始化后再呼叫ConnDB.getConnection();  這樣你初始化寫了有什么意義?

uj5u.com熱心網友回復:

直接這樣注入
 @Autowired
    private JdbcTemplate jdbcTemplate;

然后在查詢方法中
 @RequestMapping("list")
    public List<Map<String, Object>> queryList() {
        List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT id,name FROM test_db.student ", new Object[]{});
        return list;
    }

uj5u.com熱心網友回復:

參考 2 樓 qq_39936465 的回復:
Quote: 參考 樓主 qq_42188444 的回復:
【小白求助】idea右側database連接mysql成功,mysql驅動加載成功,url用戶名密碼正確但getConnection就是進不去
工具:idea、mysql
模式:jsp+servlet+javabean
思路:index為登錄頁面,插入js判斷跳轉到用戶/管理員處理頁面,userLogin_result呼叫userDAO檢驗賬號密碼,userDAO呼叫ConnDB獲取資料庫連接

專案結構:


index填寫表單選擇普通用戶登錄后顯示error500
mysql資料庫驅動加載成功:
但tomcat日志沒有顯示get db connection success....,說明應該是卡在了獲取連接階段
已知url用戶名密碼確認無誤
請教各位大神這究竟是哪里出了問題?


我是沒看懂

 conn = DriverManager.getConnection(url,info);//獲取連接   這句是在干么,你已經有username和password了,為什么不直接用

 conn = DriverManager.getConnection(url,username,passowrd);



開始是直接用的,網上看到別人的這種用法就試試能不能解決問題…

uj5u.com熱心網友回復:

你UserDao.java有問題,都沒賦值給conn,要么你直接用ConnDB的靜態conn值,程式要規范點,靜態寫了不用,你設定靜態干么還不如不寫。
改成下面試試

import java.sql.*;

 
public class UserDao {
    Connection conn = null;
 
    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
        conn=ConnDB.getConnection();   //這里可以不用
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);  // 或者這里直接用  PreparedStatement ps =ConnDB.conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
        ps.close();
        ConnDB.closeDb();
        return password == rs.getInt("u_password");
    }
}


uj5u.com熱心網友回復:

參考 5 樓 qq_42188444 的回復:
開始是直接用的,網上看到別人的這種用法就試試能不能解決問題…


是你userdao的問題,conn還是空值,沒有傳遞。改為下面就應該可以了。

conn=ConnDB.getConnection(); 

uj5u.com熱心網友回復:

參考 6 樓 qq_39936465 的回復:
你UserDao.java有問題,都沒賦值給conn,要么你直接用ConnDB的靜態conn值,程式要規范點,靜態寫了不用,你設定靜態干么還不如不寫。
改成下面試試

import java.sql.*;

 
public class UserDao {
    Connection conn = null;
 
    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
        conn=ConnDB.getConnection();   //這里可以不用
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);  // 或者這里直接用  PreparedStatement ps =ConnDB.conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
        ps.close();
        ConnDB.closeDb();
        return password == rs.getInt("u_password");
    }
}




試了還是報錯500

uj5u.com熱心網友回復:

會不會跟mysql版本過高以致于沒有兼容部分jar包?

uj5u.com熱心網友回復:

參考 8 樓 qq_42188444 的回復:
試了還是報錯500


你除了驗證user,其他呼叫getConnection可能都有問題,都要改。

uj5u.com熱心網友回復:

我只有userDAO呼叫了getConnection啊orz

uj5u.com熱心網友回復:

參考 10 樓 qq_39936465 的回復:
Quote: 參考 8 樓 qq_42188444 的回復:


試了還是報錯500


你除了驗證user,其他呼叫getConnection可能都有問題,都要改。


可我只有userDAO呼叫了getConnection啊,其他還沒寫,在這個地方卡殼了好幾天了Orz

uj5u.com熱心網友回復:

參考 12 樓 qq_42188444 的回復:
Quote: 參考 10 樓 qq_39936465 的回復:
Quote: 參考 8 樓 qq_42188444 的回復:


試了還是報錯500


你除了驗證user,其他呼叫getConnection可能都有問題,都要改。


可我只有userDAO呼叫了getConnection啊,其他還沒寫,在這個地方卡殼了好幾天了Orz


我暈了一看的的userDAO你鏈接先關閉了還怎么比對password?

就沒你這么寫的,難道你資料庫就一個password?



public class UserDao {

    Connection conn = null;
 
    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
     boolean flag=false;
        conn=ConnDB.getConnection();
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
        while(rs.next()) {
         if(password == rs.getInt("u_password")) {
         flag=true;
         }
        }
        ps.close();
        ConnDB.closeDb();
        return flag;
    }

}

uj5u.com熱心網友回復:

是我沒看清楚確實只要比一次就行了,但是資料庫鏈接需要比完了才能關不然,rs無法獲取。


public class UserDao {

    Connection conn = null;
 
    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
     boolean flag=false;
        conn=ConnDB.getConnection();
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
         if(password == rs.getInt("u_password")) {
         flag=true;
         }
        ps.close();
        ConnDB.closeDb();
        return flag;
    }

}



uj5u.com熱心網友回復:

參考 14 樓 qq_39936465 的回復:
是我沒看清楚確實只要比一次就行了,但是資料庫鏈接需要比完了才能關不然,rs無法獲取。


public class UserDao {

    Connection conn = null;
 
    //檢驗賬號密碼是否相匹配
    public boolean checkAccount(int id,int password)throws Exception{
     boolean flag=false;
        conn=ConnDB.getConnection();
        String sql = "SELECT U_PASSWORD FROM USER WHERE ID = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
         if(password == rs.getInt("u_password")) {
         flag=true;
         }
        ps.close();
        ConnDB.closeDb();
        return flag;
    }

}



謝謝大佬提醒!但改了以后getConnection還是進不去。。。

uj5u.com熱心網友回復:

補充一下報錯日志

HTTP Status 500 – Internal Server Error
Type Exception Report

Message Servlet execution threw an exception

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

java.lang.NoClassDefFoundError: Could not initialize class sun.security.ssl.SSLKeyExchange$1
java.base/sun.security.ssl.SSLKeyExchange.valueOf(SSLKeyExchange.java:202)
java.base/sun.security.ssl.ServerHello$T12ServerHelloConsumer.consume(ServerHello.java:1135)
java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.onServerHello(ServerHello.java:995)
java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:877)
java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:441)
java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:419)
java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:177)
java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1180)
java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1091)
java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:316)
com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99)
com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:352)
com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java:777)
com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:486)
com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202)
com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1452)
com.mysql.cj.NativeSession.connect(NativeSession.java:165)
com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
com.arvin.db.ConnDB.getConnection(ConnDB.java:31)
DAO.UserDao.checkAccount(UserDao.java:13)
servlet.userLogin_result.doPost(userLogin_result.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/7.0.96

uj5u.com熱心網友回復:

可能是jar包版本太低,和你的jdk不兼容。升級一下jar包試試

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8245.html

標籤:Web 開發

上一篇:Ios沙箱環境喚起不了支付寶

下一篇:面試被問到的Redis

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more