欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java连接Mysql

程序员文章站 2022-04-14 15:40:53
一、下载Mysql连接Jar包 1:jar可到Mysql官网下载:地址 "Mysql 连接jar包" ). 如图,在下拉列表框中选择Platform Independent 2:点击DownLoad 3:在新得页面点击No thanks, just start my download.意思是,不,谢 ......

一、下载mysql连接jar包

1:jar可到mysql官网下载:地址mysql 连接jar包.
如图,在下拉列表框中选择platform independent

Java连接Mysql

2:点击download

Java连接Mysql

3:在新得页面点击no thanks, just start my download.意思是,不,谢谢,我只想进行下载

Java连接Mysql

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

1:先新建一个文件夹,用来存放第三方jar,这里就是用来存放mysql得连接jar包

Java连接Mysql

2:在新弹出得窗口中填写一个文件夹名称,文件夹名可以随便写,只要符合windows文件夹命名就可以,这里我写得是lib(library得简写)

Java连接Mysql

3:你已经下载好了mysql jar包,如果第一步成功得话.如图
把下载的jar复制到刚才新建的lib下(ctrl+c ctrl+v)

Java连接Mysql
4:右击lib下得mysql jar包------build path------add to build path,如果成功得话,文件夹可能会有一些变化

Java连接Mysql
Java连接Mysql

三、连接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(); //关闭连接
        
    }

}