zoukankan      html  css  js  c++  java
  • 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`  (
    " + 
    				"  `user_name` varchar(255) CHARACTER SET utf8mb4  NOT NULL,
    " + 
    				"  `user_pwd` varchar(255) CHARACTER SET utf8mb4  NOT NULL,
    " + 
    				"  `user_money` decimal(10, 2) NOT NULL DEFAULT 0.00,
    " + 
    				"  PRIMARY KEY (`user_name`) USING BTREE
    " + 
    				") 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(); //关闭连接
    		
    	}
    
    }
    
    

    公众号

  • 相关阅读:
    JS BOM对象 History对象 Location对象
    JS 字符串对象 数组对象 函数对象 函数作用域
    JS 引入方式 基本数据类型 运算符 控制语句 循环 异常
    Pycharm Html CSS JS 快捷方式创建元素
    CSS 内外边距 float positio属性
    CSS 颜色 字体 背景 文本 边框 列表 display属性
    【Android】RxJava的使用(三)转换——map、flatMap
    【Android】RxJava的使用(二)Action
    【Android】RxJava的使用(一)基本用法
    【Android】Retrofit 2.0 的使用
  • 原文地址:https://www.cnblogs.com/HouXinLin/p/10849190.html
Copyright © 2011-2022 走看看