記錄java web項目讀取數據庫,寶塔創建數據庫過程


1、寶塔創建數據庫

在寶塔控制台的軟件管理里邊找到phpMyAdmin,點擊安裝,並且端口號修改為888

 

 

 

 

 

 2、在寶塔安全里邊放開端口888 和3306

 

 

 3、雲服務器安全組也同樣放開端口號

 4、寶塔點擊數據庫,添加數據庫,創建完成后,點擊權限,選擇所有人

 

 

 5、數據庫創建完成,自行添加數據

 6、數據庫配置完成后,在java web項目中訪問數據庫

 

定義數據庫屬性

public class StaticVar {
    //鏈接遠程服務器數據庫
    public static final String DB_URL = "jdbc:mysql://服務器id:3306/user?useUnicode=true&characterEncoding=UTF-8";
    public static final String USER_NAME = "數據庫名";
    public static final String DB_PASSED = "數據庫密碼";
    public static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
}

 

管理類

package student.base;

import java.sql.*;

public class DBManager {

    private static DBManager instance;
    private Connection con;
    private ResultSet res;
    private Statement state;

    public static DBManager getInstance() {
        if (instance == null) {
            instance = new DBManager();
        }
        return instance;
    }

    /**
     * 該方法用戶連接數據庫
     *
     * @return 返回Connection的一個實例
     */
    private Connection getConnection() {

        try {
            Class.forName(StaticVar.DRIVER_NAME);
            con = DriverManager.getConnection(StaticVar.DB_URL,
                    StaticVar.USER_NAME, StaticVar.DB_PASSED);

        } catch (ClassNotFoundException e) {
            return null;
        } catch (SQLException e) {
            return null;
        }

        return con;
    }

    /**
     * 用於查詢sql語句
     *
     * @param sql sql語句
     * @return 返回ResultSet集合
     */
    public ResultSet select(String sql) {
        con = getConnection();
        if (!(con == null)) {
            try {
                state = con.createStatement();
                res = state.executeQuery(sql);
            } catch (SQLException e) {
                return null;
            }
        }
        return res;
    }

    /**
     * 向表中插入一個元素,返回插入后的元素的id
     *
     * @param sql
     * @return
     */
    public int insert(String sql) {
        int iId = -1;
        con = getConnection();

        if (con != null) {
            try {
                state = con.createStatement();
                int res = state.executeUpdate(sql,
                        Statement.RETURN_GENERATED_KEYS);

                if (res != 0) {
                    ResultSet rs = state.getGeneratedKeys();
                    if (rs.next()) {
                        iId = rs.getInt(1);
                    }
                }
            } catch (SQLException e) {
                iId = -1;
            }

        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
            }
        }
        return iId;
    }

    /**
     * 修改表中的某個元素的數值
     *
     * @param sql sql語句
     * @return 元素是否被成功修改
     */
    public boolean update(String sql) {
        boolean updated = false;
        con = getConnection();
        if (con != null) {
            try {
                state = con.createStatement();

                int res = state.executeUpdate(sql);
                if (res == 0) {
                    updated = false;
                } else {
                    updated = true;
                }
            } catch (SQLException e) {
                updated = false;
            }
        }
        return updated;
    }

    /**
     * 刪除表中的某一個表項
     *
     * @param sql sql語句
     * @return 返回是否刪除成功
     */
    public boolean delete(String sql) {

        boolean deleted = false;
        con = getConnection();
        if (con != null) {
            try {
                state = con.createStatement();

                int res = state.executeUpdate(sql);

                if (res == 0) {
                    deleted = false;
                } else {
                    deleted = true;
                }

            } catch (SQLException e) {
                deleted = false;
            }
        }
        return deleted;
    }

    public void close() {
        try {
            if (res != null) {
                res.close();
            }
            if (state != null) {
                state.close();
            }

            if (con != null) {
                con.close();
                con = null;
            }
        } catch (SQLException ignored) {
        }
    }
}

 

鏈接數據庫,獲取數據,部分代碼如下

        if (check.getVersion() != null) {
            String selectSQL = "select * from story";
            String title = null;
            String content = null;
            String url = null;
            list.clear();

            try {
                DBManager dbManager = DBManager.getInstance();
                ResultSet rs = dbManager.select(selectSQL);
                while (rs.next()) {
                    title = rs.getString("title");
                    content = rs.getString("content");
                    url = rs.getString("url");

                    StoryInfo storyInfo = new StoryInfo();
                    storyInfo.setTitle(title);
                    storyInfo.setContent(content);
                    storyInfo.setUrl(url);
                    list.add(storyInfo);
                }
                rs.close();
                dbManager.close();

 

本地調試,編譯,配置了Artifacts,就需要用build Artifacts來編譯

 

 

 

數據獲取成功

 

7、生成的.war文件上傳到服務器tomcat對應的目錄下  tomcat\webapps

調用數據庫,本地調用正常,服務器報錯   空指針異常 

解決辦法:本地java web項目中lib目錄下   

mysql-connector-java-5.1.45-bin.jar  和 spring-jdbc-5.2.3.RELEASE.jar復制到服務器tomcat 對應的lib目錄下,問題解決了

 

8、遇到tomcat輸出信息亂碼,修改辦法如下:

 tomcat\conf目錄下logging.properties  文件

 java.util.logging.ConsoleHandler.encoding = GBK

即可解決亂碼問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM