国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java Web學習之MySQL在項目中的使用方法

2024-07-14 08:40:32
字體:
來源:轉載
供稿:網友

前言

尷尬:access denied for user 'root'@'localhost' using password yes

有時候,在連接 MySQL 數據的時候,會報一個錯誤信息 "access denied for user 'root'@'localhost' using password yes",看到這個錯誤不要一臉懵逼,造成錯誤的原因就是數據庫訪問的用戶名或密碼不正確,這時候一般又分為以下兩種情況,分別說一說解決方法。

一、新安MySQL未設置密碼,這種情況就需要添加密碼,如何添加?

1、用空密碼方式使用root用戶登錄 MySQL

mysql/55356.html">mysql -u root

2、修改root用戶的密碼:

mysql>update 數據庫名稱 set password=PASSWORD('新的密碼') where USER='root'mysql>flush privileges;mysql>quit

3、重新啟動MySQL,就可以使用新密碼登錄了

二、好久不用,忘記密碼

1、打開DOS進入mysql下bin目錄:本人:D:/Development/mysql-5.5.29-winx64/bin

2、停止mysql服務,net stop mysql

3、在D:/Development/mysql-5.5.29-winx64/bin 后面輸入:

mysqld --defaults-file="D:/Development/mysql-5.5.29-winx64/bin/my.ini" --console --skip-grant-tables

4、重新打開一個DOS窗口,在D:/Development/mysql-5.5.29-winx64/bin后面輸入:mysql -root -p

5、提示輸入密碼,在Enter后面輸入密碼,進入mysql>

6、在mysql>下輸入:

mysql>update 數據庫名稱 set password=PASSWORD('新的密碼') where USER='root'mysql>flush privileges;mysql>quit

注意:若有多個數據庫可多次update操作即可。

通過屬性文件來配置MySQL

一、常見的連接數據的方式

  • 編碼方式,將數據庫配置信息直接寫入JAVA代碼之中
  • Properties屬性文件,將數據庫配置信息寫在屬性文件中,然后在程序中讀取該屬性文件。
  • 數據源,用JNDI來獲取DataSource 對象,從而的到Connection對象。
  • Hibernate配置
  • Spring配置

二、屬性文件(.properties)配置與讀取

1、配置文件users.properties

jdbc.drivers=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/databaseNamejdbc.username=rootjdbc.password=upassword

2、讀取屬性文件

(1) 創建Properties的對象;

Properties properties = new Properties();

這一步也可以這樣做:創建繼承Properties的類,并以單例模式獲取對象。

(2) 使用Class對象的getResourceAsStream()方法,把指定的屬性文件讀入到輸入流中,并使用Properties類中的load()方法,從輸入流中讀取屬性列表(鍵/值對);

private String resource = "users.properties";//假如配置文件名為users.propertiesInputStream in = getClass().getResourceAsStream(resource);properties.load(in);

(3) 在使用數據庫連接時,使用Properties類中的getProperty()方法,通過key獲取value值,從而實現數據庫連接的操作。

String drivers = props.getProperty("jdbc.drivers");String url = props.getProperty("jdbc.url");String username = props.getProperty("jdbc.username");String password = props.getProperty("jdbc.password");//返回的是Connection類的實例Class.forName(drivers);return DriverManager.getConnection(url, username, password);

MySQL連接池

一、為什么使用數據源和連接池

應用程序需要頻繁的連接數據庫的,如果每次操作都連接數據庫,然后關閉,這樣做性能一定會受限。所以,一定要想辦法復用數據庫的連接。使用連接池可以達到復用數據庫連接的目的。

二、連接池概念

連接池是用來管理Connection 對象的,連接池可以從數據源中獲得連接,連接池中可以有若干個數據庫連接對象,這些連接對象可以被重用。應用程序需要連接時,就向連接池申請,如果連接池中有空閑的連接,就會分配給應用程序,如果沒有,可能就需要在等待隊列里等待。

三、MySQL連接池配置

1、把數據庫驅動包 以及JSTL的jar包 copy 到 %CATALINA_HOME%/lib 下。

2、修改 %CATALINA_HOME%/conf/server.xml 文件,在 <Host> 節點下添加:

<!-- appName 為項目名 docBase一定要準確 &符號要換成&--!><Context path="/appName" docBase="appName/WebRoot" auth="Container">  <Resource name="jdbc/MySQLDS" scope="Shareable"   type="javax.sql.DataSource"   url="jdbc:mysql://localhost:3306/kqxt?useUnicode=true&characterEncoding=utf-8"   driverClassName="com.mysql.jdbc.Driver"   username="root" password="root"   maxWait="3000" maxIdle="100" maxActive="10" /></Context>

3、修改 web.xml,在 <web-app> 節點下添加下面內容

<resource-ref><description>Mysql Datasource example</description><res-ref-name>MySQLDS</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>

4、在代碼中獲取數據庫連接

// 注意導入的包名import java.sql.Connection;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class DBUtil {public static Connection getConnection() throws Exception {  Context context = new InitialContext();  // 獲取數據源  DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQLDS");  // 獲取數據庫連接  Connection conn = ds.getConnection();  if (conn != null && !conn.isClosed()) {    return conn;   } else {    return null;   }  }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁山县| 当阳市| 交城县| 长治市| 娱乐| 青铜峡市| 岑溪市| 平陆县| 自贡市| 康乐县| 名山县| 汝州市| 鸡泽县| 含山县| 资源县| 丹江口市| 延川县| 合川市| 南召县| 宁乡县| 本溪市| 甘泉县| 松江区| 武山县| 九寨沟县| 新营市| 峨眉山市| 安西县| 宜川县| 松江区| 沂南县| 石狮市| 琼海市| 乌兰察布市| 黄梅县| 禹州市| 新津县| 汉中市| 镇远县| 夏河县| 景谷|