Java/jdbc连接MySQL数据库时,用预处理方法,如何得到数据库的表中多条数据 ...

诗林  金牌会员 | 2024-9-18 18:24:26 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 349|帖子 349|积分 1047

起首:要想连上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
  1. if(i!=0){//处理结果集,类型为int,只要不为0即可
  2.                 System.out.println("注册成功");
  3.             }
  4.         }catch (Exception e){
  5.             e.printStackTrace();
  6.         }
复制代码

//实验sql语句  ResultSet resultSet = prepareStatement.executeQuery(); //查询数据Query
处理效果集,  ResultSet范例要用next来判断是否有内容,有就获取,进入实验if语句
  1. if(resultSet.next()){
  2.                 System.out.println("登录成功!✔");
  3.                un=name;//登录成功,将值返回
  4.             }
复制代码
注意:最关键的也是这里,如果用if语句,永远只能得到数据库表中的某一列,或某几列的第一行数据内容,因为if只实验一次,哪怕第一行的后面都有数据,第一举动空,也只会表现为空,所以
要使用全部数据的话,这时间要用while循环,将某(几)列的全部内容都拿出来
示例:用while可以拿到表中某列的全部内容
  1. while (resultSet != null&&resultSet.next()) {//结果集不能直接打印,要具体获取某一列
  2.                String[] usernames = resultSet.getString("username").split("\r\n");//直接将结果集放入,只能放一个
  3.                for (String username : usernames) {//上面换行切割,将每个名字都单独放到集合中
  4.                    list.add(username);
  5.                }
复制代码
第四步处理效果集:

其实第三步内里已经包含了,如何处理效果集。在此总结:如果效果集是int 范例要用if语句判断i!=0;(i不便是0),如果必要的话,用while判断也可以,能更具体的知道受影响的行数
如果效果集是ResultSet范例,只是简单的知道是否有内容的话,就用if去判断ResultSet.next(),如果要获取表中全部数据的话,必须要用while循环,才能拿到所必要的表中全部数据

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表