Java連接Mysql


一、下載Mysql連接Jar包

1:jar可到Mysql官網下載:地址Mysql 連接jar包.
如圖,在下拉列表框中選擇Platform Independent

image.png

2:點擊DownLoad

image.png

3:在新得頁面點擊No thanks, just start my download.意思是,不,謝謝,我只想進行下載

image.png

二、集成mysql jar到你得項目中

1:先新建一個文件夾,用來存放第三方jar,這里就是用來存放mysql得連接jar包

image.png

2:在新彈出得窗口中填寫一個文件夾名稱,文件夾名可以隨便寫,只要符合windows文件夾命名就可以,這里我寫得是lib(library得簡寫)

image.png

3:你已經下載好了mysql jar包,如果第一步成功得話.如圖
把下載的jar復制到剛才新建的lib下(Ctrl+c Ctrl+v)

image.png
4:右擊lib下得mysql jar包------Build Path------Add to Build Path,如果成功得話,文件夾可能會有一些變化

image.png
image.png

三、連接mysql

1:新建一個MysqlManager 類,如果你不知道怎么建,以及建立在什么地方,我想你可能是缺少一些java以及IED得知識,不如回頭學一下再過來.


public class MysqlManager {
	private static  Connection mConnect;
	static {
		try {
			System.out.println("init---");
			Class.forName("com.mysql.cj.jdbc.Driver");
			mConnect=DriverManager.getConnection("jdbc:mysql://localhost:3306/demo", "root", "hxl495594..");
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static Connection getConnection() {
		return mConnect;
		
	}
	public static void  close() {
		try {
			mConnect.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

2:測試代碼Main.java

public class Main {
	
	public Main() {
	

	}
	public static void main(String[] args) {
		MysqlManager.getConnection();
		
	}

}

3:如果運行以上代碼沒有報錯,說明jar包成功集成了,並且成功連接到mysql.

但是着該死的異常總是伴隨着我們,比如:

1:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
你連接得密碼可能有誤

2:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
沒有找到com.mysql.cj.jdbc.Driver類,可能是你第二步沒有做對,不妨回頭仔細閱讀一下

3:Caused by: java.net.UnknownHostException: localhost
你得mysql主機連接路徑可能存在問題,

如果你的異常不再我上面列舉的范圍內,那你可以嘗試使用百度或者Google(作為程序員,不會上google怎么可以呢),或者評價留言.

四、增刪查改

下面要做的事就是:
1:創建一個tb_user表,有三個字段,user_name、user_pwd、user_money
2:增加兩個有錢人
3:查詢一個具體的人
4:修改他的密碼

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

public class Mysql {
	public Connection mConnect;
	
	public Mysql(Connection connection) {
		super();
		this.mConnect = connection;
	}

	/**
	 * 創建表
	 * @param connection
	 * @param sql
	 * @return
	 */
	public  boolean createTable(String sql) {
		boolean result = false;
		try {
			Statement statement = mConnect.createStatement();
			statement.execute(sql);
			result = true;
			statement.close();

		} catch (SQLException e) {
			System.err.println("創建表異常:"+e.getMessage());
		}
		return result;
	}
	
	
	/**
	 * 添加用戶
	 * @param users
	 */
	public  void addUser(List<UserBean> users) {
		try {
			Statement statement =mConnect.createStatement();
			/**
			 * 循環添加
			 */
			for (UserBean userBean : users) {
				String sql ="INSERT INTO `demo`.`tb_user`(`user_name`, `user_pwd`, `user_money`) VALUES ('"+
			    userBean.getmUserName()+"','"+userBean.getmUserPass()+"',"+userBean.getmMoney()+")";
				statement.executeUpdate(sql);//執行語句
			}
			statement.close();
		} catch (SQLException e) {
			/**
			 * 可能會重復添加
			 */
			if(e.getMessage().contains("PRIMARY")) {
				System.err.println("主鍵重復");
			}
		}
		
	}
	
	/**
	 * 獲取指定用戶信息
	 * @param userName
	 * @return
	 */
	public UserBean getUserInfos(String userName) {
		String sql ="SELECT * FROM `demo`.`tb_user` WHERE user_name='" +userName+"';";
		try {
			Statement statement =mConnect.createStatement();
			ResultSet result = statement.executeQuery(sql);
			if(result.first()) {
				UserBean userBean =new UserBean(
						result.getString("user_name"), 
						result.getString("user_pwd"), 
						new BigDecimal(result.getFloat("user_money")));
				return userBean;
			}
			
			
			statement.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			
		}
		return null;
	}
	
	/**
	 * 更新用戶密碼
	 * @param userName  用戶名字
	 * @param oldPdw 	用戶以前密碼
	 * @param newPwd	用戶新密碼
	 * @return
	 */
	public int upUserPwd(String userName,String oldPdw,String newPwd) {
		int result =-1;
		try {
	
			String sql="UPDATE `demo`.`tb_user` SET `user_pwd` = '"+newPwd+ "' WHERE `user_name` = '"+userName+"'";
			
			UserBean user =getUserInfos(userName);
			if(user!=null) {
				/**
				 * 判斷傳遞過來的老密碼是否正確
				 */
				if(user.getmUserPass().equals(oldPdw)) {
					Statement statement =mConnect.createStatement();
					statement.executeUpdate(sql);
					statement.close();
					result= 0;
				}else {
					result=1;
					System.err.println("密碼不正確,不允許更改");
				}
			}else {
				result=2;
				System.err.println("無此用戶");
			}
		}catch(SQLException e) {}
		return result;
		
	}
}

測試(Main.java)

public class Main {
	
	public Main() {
	

	}
	public static void main(String[] args) {
		String createTablesSql="CREATE TABLE IF NOT EXISTS  `tb_user`  (\r\n" + 
				"  `user_name` varchar(255) CHARACTER SET utf8mb4  NOT NULL,\r\n" + 
				"  `user_pwd` varchar(255) CHARACTER SET utf8mb4  NOT NULL,\r\n" + 
				"  `user_money` decimal(10, 2) NOT NULL DEFAULT 0.00,\r\n" + 
				"  PRIMARY KEY (`user_name`) USING BTREE\r\n" + 
				") CHARACTER SET = utf8mb4";
		
		Mysql mysql =new Mysql(MysqlManager.getConnection());
		
		/**
		 * 創建表
		 */
		boolean ok =mysql.createTable(createTablesSql);
		
		
		/**
		 * 添加用戶
		 */
		List<UserBean> list =new ArrayList<>();
		list.add(new UserBean("張五", "123",new BigDecimal(1000000.5)) );
		list.add(new UserBean("張四", "123456",new BigDecimal(2000000)) );
		mysql.addUser(list);
		
		
		//獲取指定用戶信息
		UserBean user =mysql.getUserInfos("張五");
		if (user!=null) {
			System.out.println(user.getmUserPass() +"  "+user.getmMoney());
		}

		 //修改用戶密碼
		mysql.upUserPwd(user.getmUserName(), user.getmUserPass(), "123456789");
		
		MysqlManager.close(); //關閉連接
		
	}

}

公眾號


免責聲明!

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



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