首先:要想连上MySQL数据库,首先得去官网下载符合自身Java版本的MySQL
配置jar包:
然后:将下载的jar包配置到自己的lib中,有两种方法:
1.可以打开Java的菜单上的File,去点击Project Structure,在Libraries中配置
2、创建一个Package并命名lib,直接将jar包复制粘贴放在该里面,然后鼠标右键点击jar包,选择下面的as lib 这个选项,然后就配置完成了。
配置完成后,需要进行数据库的连接
第一步:先注册驱动:
Class forName(com.mysql.jdbc.Driver)
第二步:进行连接:
Connection conn =DriverManage.getConnection(url,username,password);
这里的url是指:MySQL的地址,如
jdbc:mysql://192.168.27.100:3306/User?useUnicode=true&characterEncoding=utf-8&useSSL=false
username是指登录MySQL的用户名;如root
password是指Mysql的登录密码
第三步:创建SQL语句操作对象和执行SQL语句:
直接创建:
Statement statement =conn.createStatement(" ");括号里面写sql语句
//执行SQL语句:ResultSet resultSet = state.executeQuery(sql);//查询语句
预编译:预编译可以将Java中的变量传进去,也可以防止SQL注入问题!
PreparedStatement prepareStatement = conn.prepareStatement("INSERT INTO users values (?,?)");
传?的值 :prepareStatement.setString(1,name);
prepareStatement.setString(2,password);
//执行sql语句 int i = prepareStatement.executeUpdate();//增删改数据Update
返回的i是代表受影响的行数,在处理int类型的结果集的时候,要确保i不等于0
if(i!=0){//处理结果集,类型为int,只要不为0即可
System.out.println("注册成功");
}
}catch (Exception e){
e.printStackTrace();
}
//执行sql语句 ResultSet resultSet = prepareStatement.executeQuery(); //查询数据Query
处理结果集, ResultSet类型要用next来判断是否有内容,有就获取,进入执行if语句
if(resultSet.next()){
System.out.println("登录成功!✔");
un=name;//登录成功,将值返回
}
注意:最关键的也是这里,如果用if语句,永远只能获得数据库表中的某一列,或某几列的第一行数据内容,因为if只执行一次,哪怕第一行的后面都有数据,第一行为空,也只会显示为空,所以
要使用全部数据的话,这时候要用while循环,将某(几)列的所有内容都拿出来
示例:用while可以拿到表中某列的全部内容
while (resultSet != null&&resultSet.next()) {//结果集不能直接打印,要具体获取某一列
String[] usernames = resultSet.getString("username").split("\r\n");//直接将结果集放入,只能放一个
for (String username : usernames) {//上面换行切割,将每个名字都单独放到集合中
list.add(username);
}
第四步处理结果集:
其实第三步里面已经包含了,如何处理结果集。在此总结:如果结果集是int 类型,要用if语句判断i!=0;(i不等于0),如果需要的话,用while判断也可以,能更具体的知道受影响的行数。
如果结果集是ResultSet类型,只是简单的知道是否有内容的话,就用if去判断ResultSet.next(),如果要获取表中所有数据的话,必须要用while循环,才能拿到所需要的表中所有数据