Java连接Mysql
一、下载mysql连接jar包
1:jar可到mysql官网下载:地址mysql 连接jar包.
如图,在下拉列表框中选择platform independent
2:点击download
3:在新得页面点击no thanks, just start my download.意思是,不,谢谢,我只想进行下载
二、集成mysql jar到你得项目中
1:先新建一个文件夹,用来存放第三方jar,这里就是用来存放mysql得连接jar包
2:在新弹出得窗口中填写一个文件夹名称,文件夹名可以随便写,只要符合windows文件夹命名就可以,这里我写得是lib(library得简写)
3:你已经下载好了mysql jar包,如果第一步成功得话.如图
把下载的jar复制到刚才新建的lib下(ctrl+c ctrl+v)
4:右击lib下得mysql jar包------build path------add to build path,如果成功得话,文件夹可能会有一些变化
三、连接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(); //关闭连接 } }