java连接mysql数据库的步骤(访问数据库的步骤)

Java连接MySQL数据库步骤声明,只推荐你看代码学会我的步骤,逻辑,还有用的所有方法第一,​ 安装mysql数据库配置(https://www.jianshu.com/p/ea4accd7afb4),安装还有配置教程,按照步骤来肯定没错,里面是win10的mysql解压版安装教程,设置账号密码是一定要注意:账号一般为root,密码一般为123456,如果你要更改的话一定要记住,因为…

大家好,又见面了,我是你们的朋友全栈君。

Java连接MySQL数据库步骤

声明,只推荐你看代码学会我的步骤,逻辑,还有用的所有方法

第一,

​ 安装mysql数据库配置(https://www.jianshu.com/p/ea4accd7afb4),安装还有配置教程,按照步骤来肯定没错,里面是win10的mysql解压版安装教程,设置账号密码是一定要注意 :账号一般为root,密码一般为 123456 ,如果你要更改的话一定要记住,因为后面连接需要用到(切记),如果忘了会很麻烦。

第二,

​ 如果是新手的话推荐学一下mysql的语法,认真的话一个星期学会绝对没问题(菜鸟教程网站),学会基本的查询当前电脑有的数据库,使用数据库,创建数据库,创建表,查看数据库中的表,还有对表的增删改查语法,新手不推荐使用视图软件,要记住操作mysql的代码,可以先在 cmd 黑框框中写操作数据库的代码。

如果要用视图软件的话推荐下一个navicat破解版,自己用可以,不能商用。

第三,

​ 下来就要用java编译器连接数据库了(java连接数据库又叫JDBC)。

mysql提供的第三方java包,里面配置了连接java连接mysql的默认配置和驱动

链接:https://pan.baidu.com/s/1Z_ztiTEGloX7r3ilZoZsCg
提取码:0f1s

创建项目->

在这里插入图片描述

创建文件夹起名为lib(把上面下载的包复制到lib文件夹下,直接复制粘贴就好了)->

在这里插入图片描述

鼠标右击复制过来的包导入项目导为jar包(在后面写连接代码时可以直接用)->

在这里插入图片描述
在这里插入图片描述

导入成功是这样子
在这里插入图片描述

创建两个包,一个存放连接数据库的代码,一个存放数据库中的表信息(pojo)

com.pojo在这个包里创建的类用来存放你的表中字段,存放实体类,必须满足javaBean(一个表就是一个类,类中属性就是表中字段)
在这里插入图片描述

连接步骤(这个很重要)(代码中都有注释):

1.导jar包,前面已经导过了

2.在连接类里写代码,加载mysql驱动(要写在代码块里,因为要连接必须最先加载驱动),代码块在加载类时就执行,在构造方法之前(注意是代码块{},不是方法)

//连接信息 
private String userName = "root";//这里是你最开始刚下载mysql是输入的账号
	private String password = "123456";//这里是你最开始mysql设置的密码,
	private String url = "jdbc:mysql://localhost:3306/testdatabase";
//数据库连接信息,
//第一个是java连接数据库协议,中间的是要连接的ip地址和端口号,localhost是本地ip,后面的是你要连接的数据库的名字,我要连接数据库的名字叫testdatabase
	


{ 
   
		try { 
   
    	//这里不用更改,如果你要连的不是mysql的话再换这个括号内的代码
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("驱动加载成功!");
		} catch (ClassNotFoundException e) { 
   
			// TODO Auto-generated catch block
			System.out.println("加载失败!");
			e.printStackTrace();
		}

}

3.创建连接数据库(这里在构造方法里连接)

public DataBaseConnection() { 
   
		// TODO Auto-generated constructor stub
		try { 
   
			this.connection =  DriverManager.getConnection(url, userName, password);//把上面的三个属性传过来,应该就连接成功了,不成功的话应该就是你的账号密码不正确
			System.out.println("数据库连接成功!");
		} catch (SQLException e) { 
   
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("连接失败!");
		}
	}

4.第四步就是操作数据库了

这里写一个往数据库里增加数据的代码

创建方法名叫insert

先想步骤

​ 1.写sql语句(就是你们在菜鸟教程里学的sql语句),菜鸟教程是个非常好的网站

​ 2.从连接中获得操作数据库句柄

​ 3.设置参数

​ 4.就是执行sql语句了

//这里传一个类对象参数Emp emp,就相当于String str 差不多
//都是引用数据类型,类,数组,接口
public void insert(Emp emp){ 
   
		//1.写sql语句
		String str = "INSERT emp VALUES (?,?,?,?,?,?,?,?)";
		PreparedStatement ps = null;
		//2.获取操作数据库句柄
		try { 
   
			//把操作数据库返回的结果保存到ps中
			ps = connection.prepareStatement(str);

		//3.设置参数
		ps.setInt(1, emp.getEmpno());
		ps.setString(2, emp.getEname());
		ps.setString(3, emp.getJob());
		ps.setInt(4, emp.getMgr());
		ps.setDate(5, emp.getDate());
		ps.setInt(6, emp.getSal());
		ps.setInt(7, emp.getComm());
		ps.setInt(8, emp.getDeptno());
		
		//4.执行sql语句
		int len = ps.executeUpdate();
		System.out.println("修改成功,共影响了"+ len +"行!");
	} catch (SQLException e) { 
   
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally{ 
   
		if(ps != null){ 
   
			try { 
   
				ps.close();
			} catch (SQLException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	//关闭数据库的方法
	public void closeConnection(){ 
   
		if(connection != null){ 
   
			try { 
   
				connection.close();
			} catch (SQLException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

我的Emp类,就是我存放数据库中emp表中字段的类(你要按照你的数据库中字段来创建类)

​ private Integer empno;//因为Integer类型可以判断是否为空
​ private String ename;
​ private String job;
​ private Integer mgr;
​ private Date hiredate;
​ private Integer sal;
​ private Integer comm;
​ private Integer deptno;

public Emp() {
	// TODO Auto-generated constructor stub
}

//创建有参构造方法,方便赋值
public Emp(Integer empno, String ename, String job, Integer mgr, Date hiredate, Integer sal, Integer comm,
		Integer deptno) {
	super();
	this.empno = empno;
	this.ename = ename;
	this.job = job;
	this.mgr = mgr;
	this.hiredate = hiredate;
	this.sal = sal;
	this.comm = comm;
	this.deptno = deptno;
}


public Integer getEmpno() {
	return empno;
}

public void setEmpno(Integer empno) {
	this.empno = empno;
}

public String getEname() {
	return ename;
}

public void setEname(String ename) {
	this.ename = ename;
}

public String getJob() {
	return job;
}

public void setJob(String job) {
	this.job = job;
}

public Integer getMgr() {
	return mgr;
}

public void setMgr(Integer mgr) {
	this.mgr = mgr;
}
public Date getHiredate() { 
   
	return hiredate;
}

public void setHiredate(Date hiredate) { 
   
	this.hiredate = hiredate;
}

public Integer getSal() { 
   
	return sal;
}

public void setSal(Integer sal) { 
   
	this.sal = sal;
}

public Integer getComm() { 
   
	return comm;
}

public void setComm(Integer comm) { 
   
	this.comm = comm;
}

public Integer getDeptno() { 
   
	return deptno;
}

public void setDeptno(Integer deptno) { 
   
	this.deptno = deptno;
}
//重写toString方法,方便测试,因为输出的是一个对象的话,java默认调用toString方法
@Override
public String toString() { 
   
	return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", date=" + hiredate
			+ ", sal=" + sal + ", comm=" + comm + ", deptno=" + deptno + "]";
}

最后创建一个测试类(Test),包含main方法,在main方法里写

在这里插入图片描述



	DataBaseConnection dbs = null;

try{ 
   

	//创建连接数据库类对象

	dbs = new DataBaseConnection();

	//创建你的表类对象,表类对象就是你存放在pojo中的类,存放表中字段的类,例如我的类为Emp

	//把类中的属性赋值

	Emp emp = new Emp8889, "刘备", "股东", 0, new    							Date(System.currentTimeMillis()), 110, 1000000, 100);                   

	//调用你写的insert类,里面把类对象传进去

	 dbs.insert(emp);

}finally{ 
   

//奥,对了,为了防止资源浪费,不管你程序执没执行成功,你都必须关闭数据库

	//需要在你的连接类中写一个关闭数据库的方法

	//上面的代码中我又添加上了,就不用你写了

	dbs.closeConnection();

}

最后你再查看你数据库中表中数据应该就插入了一条记录。

​ 再次强调,只推荐你看代码学会我的步骤,逻辑,还有用的所有方法,千万不要拷贝拿去用,因为就算你跟我的一模一样,你还是不懂。

​ 如果学习过程中有什么麻烦就请加我qq交流。

作者qq:1271224158

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129354.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 华为三层交换机不同vlan互访配置方法_不同交换机vlan间互通

    华为三层交换机不同vlan互访配置方法_不同交换机vlan间互通本次使用ensp模拟器模拟两台华为三层交换机如何配置不同网段不同vlan之间如何互通。网络拓补图如下图所示:IP地址如下:pc1:10.1.1.2/24pc2:10.1.2.2/24pc3:192.168.1.2/24pc4:192.168.2.2/24LSW1配置如下:<Huawei>system-view\\进入系统视图[Huawei]undoinfo-centerenable…

  • http 500状态码「建议收藏」

    http请求返回500状态码,整体原因是:服务器内部错误。这个原因太过笼统,看了和没看直接懵逼。今天遇到这么一个崩溃的问题,这么大的范围,怎么找呢?然后,静下来打开思路,慢慢想一下,分析过程:1.客户端请求服务端的时候,返回500,首先服务端的请求发出去了,并且返回了500,错误定位到服务端。2.服务端里面代码竟然没有执行任何打印语句,说明还没有执行到逻辑,就已经出错了。3.这边服务

  • License Error:“Failed to Open the TCP Port Number in the License “终极解决方案

    License Error:“Failed to Open the TCP Port Number in the License “终极解决方案为什么叫终极解决方案,不是笔者吹牛,这个列表比目前synopsys,cadence,的support文档里的内容都全,还有FLEXnet的帮助文档也没这全。这些招大部分edavendor的工程师也不全会,真实结论不是瞎说。这事折腾好久,花了很多精力,就让笔者吹吹牛吧,哈哈。另外,如果以下的问题都排除了,还报这个license错,不要怀疑列表不全,99%的可能是其中哪一步做的不彻底。挨

  • MySQL数据库:分区Partition

    MySQL数据库:分区Partition

  • sigaction函数和signal函数

    sigaction函数和signal函数signal和sigaction的区别:signal都是指以前的oldersignal函数,现在大多系统都用sigaction重新实现了signal函数。1.      signal在调用handler之前先把信号的handler指针恢复;sigaction调用之后不会恢复handler指针,直到再次调用sigaction修改handler指针。这样,signal就会丢失信号,而且不能处

  • apache2虚拟主机实现一个服务器绑定多个域名[通俗易懂]

    apache2虚拟主机实现一个服务器绑定多个域名[通俗易懂]1.apache2的配置首先要配置好apache2,如果未配置,请参考我之前的博文:lamp的配置2.域名的解析将全部域名的www和@的A记录解析到云服务器的IP3.虚拟主机的配置1.配置httpd.conf如果etc/httpd/conf/httpd.conf存在,则配置此httpd.conf如果etc/httpd/conf/httpd.conf不存在,此时需要我们在/etc/apache2下

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号