java连接数据库的常见问题及解决办法

简介:Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

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

一、准备:

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

java连接数据库的常见问题及解决办法

java连接数据库的常见问题及解决办法

java连接数据库的常见问题及解决办法

2) 输入登录mysql的命令:mysql -u root -p,回车,输入正确密码,回车,这个时候我们就可以看到mysql的版本是8.0.28

java连接数据库的常见问题及解决办法

java连接数据库的常见问题及解决办法


3) 根据版本选择驱动下载,我们是8.0以上的版本,所以选择8.0以上版本的驱动,去官网进行下载

java连接数据库的常见问题及解决办法


2 准备一个数据库

        create database jdbc;
        use jdbc;
        
        create table user
        (
          id   int primary key auto_increment not null,
          name varchar(20)  not null,
          pwd  varchar(20)  not null
        );
                
        insert into user(name,pwd) values('小白','123');
        insert into user(name,pwd) values('小黑','987');
                
        select * from user;
java连接数据库的常见问题及解决办法

二、写代码

1 创建一个Java项目

java连接数据库的常见问题及解决办法

2 创建一个类

java连接数据库的常见问题及解决办法

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

java连接数据库的常见问题及解决办法

java连接数据库的常见问题及解决办法

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

java连接数据库的常见问题及解决办法

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

public class JDBCTest {
	public static void main(String[] args) {
		try {
			/*
			 * 加载驱动,这里需要注意:
			 * mysql5.0版本使用com.mysql.jdbc.Driver
			 * mysql8.0版本使用com.mysql.cj.jdbc.Driver
			 */
			Class.forName("com.mysql.cj.jdbc.Driver");
			//获取连接 
			//这里要注意jdbc:mysql://127.0.0.1:3306/前面是固定写法,jdbc是数据库名字
			//root是mysql的用户名,123456是密码,根据实际情况编写
			Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc","root","123456");
			//获取语句执行对象
			Statement statement = conn.createStatement();
			//定义sql语句
			String sql="select * from user";
			//执行得到结果
			ResultSet resultSet = statement.executeQuery(sql);
			//循环结果,打印字段
			while(resultSet.next()){
				//获取id,数据类型与字段类型一致
				Integer id = resultSet.getInt("id");
				//获取用户名
				String name = resultSet.getString("name");
				//获取密码
				String pwd = resultSet.getString("pwd");
			    //打印
				System.out.println(name+"-----"+pwd);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


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

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


7 分页查询
首先添加数据

java连接数据库的常见问题及解决办法

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

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

三、总结


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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5310.html

(0)
上一篇 2022-12-13 21:20
下一篇 2022-12-13 21:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信