tnblog
首页
视频
资源
登录

Java-JDBC

6900人阅读 2022/8/2 8:54 总访问:169837 评论:1 收藏:0 手机
分类: JAVA

前言:java连接数据库时,同学们容易出现一些问题。这里把jdbc连接实现过程写出来以及列举一些常见的问题。
简介:
    Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

一、准备:
    1 在进行数据库连接之前,需要准备一个对应版本的数据库驱动,那么我们首先需要找到电脑上mysql的版本是多少
        怎么查看?如果你的安装目录上写有版本号,就不用再看了
        1) 找到安装的mysql,进入bin目录,在路径上输入cmd,回车
        

        
        
     
       2) 输入登录mysql的命令:mysql -u root -p,回车,输入正确密码,回车,这个时候我们就可以看到mysql的版本是8.0.28
        
        
        3) 根据版本选择驱动下载,我们是8.0以上的版本,所以选择8.0以上版本的驱动,去官网进行下载
        
    2 准备一个数据库
        

  1.         create database jdbc;
  2.         use jdbc;
  3.         
  4.         create table user
  5.         (
  6.           id   int primary key auto_increment not null,
  7.           name varchar(20)  not null,
  8.           pwd  varchar(20)  not null
  9.         );
  10.                 
  11.         insert into user(name,pwd) values('小白','123');
  12.         insert into user(name,pwd) values('小黑','987');
  13.                 
  14.         select * from user;

                
二、写代码
        1 创建一个Java项目
        

        2 创建一个类
        

        3 把jar包复制到项目中,然后构建路径
                
        

        4 编写连接数据库的代码,需要用到操作数据库的各种接口和类型:
        

        5 开始编写代码,查询全部数据

  1. public class JDBCTest {
  2. public static void main(String[] args) {
  3. try {
  4. /*
  5.  * 加载驱动,这里需要注意:
  6.  * mysql5.0版本使用com.mysql.jdbc.Driver
  7.  * mysql8.0版本使用com.mysql.cj.jdbc.Driver
  8.  */
  9. Class.forName("com.mysql.cj.jdbc.Driver");
  10. //获取连接 
  11. //这里要注意jdbc:mysql://127.0.0.1:3306/前面是固定写法,jdbc是数据库名字
  12. //root是mysql的用户名,123456是密码,根据实际情况编写
  13. Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc","root","123456");
  14. //获取语句执行对象
  15. Statement statement = conn.createStatement();
  16. //定义sql语句
  17. String sql="select * from user";
  18. //执行得到结果
  19. ResultSet resultSet = statement.executeQuery(sql);
  20. //循环结果,打印字段
  21. while(resultSet.next()){
  22. //获取id,数据类型与字段类型一致
  23. Integer id = resultSet.getInt("id");
  24. //获取用户名
  25. String name = resultSet.getString("name");
  26. //获取密码
  27. String pwd = resultSet.getString("pwd");
  28.     //打印
  29. System.out.println(name+"-----"+pwd);
  30. }
  31. catch (Exception e) {
  32. // TODO Auto-generated catch block
  33. e.printStackTrace();
  34. }
  35. }
  36. }

        
        6 模拟登录操作,条件查询

  1. public class JDBCTest {
  2. public static void main(String[] args) {
  3. try {
  4. /*
  5.  * 加载驱动,这里需要注意:
  6.  * mysql5.0版本使用com.mysql.jdbc.Driver
  7.  * mysql8.0版本使用com.mysql.cj.jdbc.Driver
  8.  */
  9. Class.forName("com.mysql.cj.jdbc.Driver");
  10. //获取连接
  11. Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc","root","123456");
  12.                         //定义sql语句
  13. String sql="select * from user where name=? and pwd=?";
  14. //获取语句执行对象
  15. PreparedStatement ps = conn.prepareStatement(sql);
  16. //传参
  17. //方法的参数有两个,第一个表示第几个参数,从1开始;第二个是参数内容
  18. ps.setString(1"小白");
  19. ps.setString(2"123");
  20. //执行获取结果
  21. ResultSet resultSet = ps.executeQuery();
  22. //判断是否存在数据
  23. if(resultSet.next()){
  24. System.out.println("登录成功...");
  25. }
  26. catch (Exception e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. }
  31. }

        
        7 分页查询
            首先添加数据
            

  1. public class JDBCTest {
  2. public static void main(String[] args) {
  3. try {
  4. /*
  5.  * 加载驱动,这里需要注意:
  6.  * mysql5.0版本使用com.mysql.jdbc.Driver
  7.  * mysql8.0版本使用com.mysql.cj.jdbc.Driver
  8.  */
  9. Class.forName("com.mysql.cj.jdbc.Driver");
  10. //获取连接
  11. Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc","root","123456");
  12. String sql="select * from user limit ?,?";
  13. //获取语句执行对象
  14. PreparedStatement ps = conn.prepareStatement(sql);
  15. //传参,表示第一个参数是0,第二个参数是5
  16. //sql语句:select * from user limit 0,5 ; 从第一条开始,查询五条数据
  17. ps.setInt(10);
  18. ps.setInt(25);
  19. ResultSet resultSet = ps.executeQuery();
  20. //判断是否存在数据
  21. while(resultSet.next()){
  22. //获取id,数据类型与字段类型一致
  23. Integer id = resultSet.getInt("id");
  24. //获取用户名
  25. String name = resultSet.getString("name");
  26. //获取密码
  27. String pwd = resultSet.getString("pwd");
  28.     //打印
  29. System.out.println(id+"------"+name+"-----"+pwd);
  30. }
  31. catch (Exception e) {
  32. // TODO Auto-generated catch block
  33. e.printStackTrace();
  34. }
  35. }
  36. }

        剩下的其他操作类似,就不一一列举了

三、总结
        总结一下,连接数据库容易出问题的地方
        1 连接数据库驱动错误,数据库驱动需要选择数据库对应版本的驱动,目前是5.0和8.0版本的。解决办法:更换为正确版本的驱动
        2 连接数据库时,数据库名,数据库的用户名和密码,填写错误,这样会导致连接不上数据库。解决办法:填写正确的数据库名,用户名和密码
        3 sql语句错误,sql语句错误一般是语法错误或者符号错误。解决办法:打印一下sql语句,把sql语句拿到数据库里去执行,看是否有问题,数据库能够执行成功,就可以了
        4 传参错误,传参方法与传参类型一致,int类型使用setInt方法,以此类推。解决办法:修改方法与类型一致
        5 如果你们还遇到了其他问题,可以联系小编。





评价

NULL

2024/7/19 11:15:26

好的,连接了数据库了,该jwt验证登录了[偷笑]

sometimes ever,sometimes never
排名
21
文章
27
粉丝
11
评论
12
MySQL数据库基础
剑轩 : 大神教我学mysql!
MySQL概述与安装配置
剑轩 : PHP是目前最流行的 Web 开发语言
JAVA8 十大新特性详解
叼着奶瓶逛酒吧 : 文章写得真心不错,加油哈
Java学习 - Java语言基础
剑轩 : 每个小标题颜色加深一点会更好哦
Java学习 - Java语言简介
剑轩 : 请注意,java大神开讲了
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
亲近你的朋友,但更要亲近你的敌人。