MySQL---数据库从入门走上大神系列(二)-用Java对MySQL进行增删改查

上节已经学会对MySQL进行简单的增删改查了,那么,我们如何实现用Java来对数据库操作增删改呢。

本节将用Java演示对MySQL进行增删改查。

简单的来说,分为4个步骤:

1、加载连接器(驱动)   通过Driver类 (最好用类反射来加载,更加灵活)

2、建立与数据库的连接

3、获取语句对象

4、对数据库进行操作(增删改查)

其实第一步现在可以不用写了,高版本的MySQL已经在内部帮我们写好了第一步,但是,为了兼容性更好(兼容低版本的MySQL)我们最好还是写上第一步。

我们先看一下原数据库表:

用Java对数据库进行增删改:

package cn.hncu.sqlHello;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

//import com.mysql.jdbc.Driver;

public class dbAccess {

	@Test
	public void hello() throws ClassNotFoundException, SQLException {
		//1、加载连接器(驱动)  Driver
		Class.forName("com.mysql.jdbc.Driver");
		//用类反射加载,更灵活

		//2、建立连接
		//String url = "jdbc:mysql://127.0.0.1:3306/hncu";//这一句是采用默认编码
		String url = "jdbc:mysql://127.0.0.1:3306/hncu?useUnicode=true&characterEncoding=utf-8";//采用指定编码连接

		Connection con  = DriverManager.getConnection(url, "root", "1234");
		//这3个参数是:连接串、用户名、密码

		//3、获取语句对象
		Statement st = con.createStatement();
		//对表格hncu增加一行数据

		////4 对数据库进行操作(增删改)
		String sql = "insert into stud values('1010','杨过',26,'武侠')";
		//String sql = "insert into stud values('1010','杨过',26,'武侠');";//sql语句加上分号也是一样的。
		//但是注意!!!不能一次添加多条语句运行!(中间用分号隔也不行)
		st.execute(sql);//增删改用:st.excute()方法
	}
}

如果要运行多条语句怎么办,那就像这样的,运行多次第4步,可以达到相同的效果:

例:

sql = "insert into stud values('1011','杨过1',26,'武侠');";
st.execute(sql);
sql = "insert into stud values('1011','杨过1',26,'武侠');";
st.execute(sql);

运行之后的stud表:

删除和修改也是和增加一样的,只要把sql那个字符串换一下就可以了(sql那个字符串为SQL操作语句)。

查询有所不同!

Java查询SQL数据库语句代码如下:

package cn.hncu.sqlHello;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

//import com.mysql.jdbc.Driver;

public class dbAccess {

	@Test
	public void hello() throws ClassNotFoundException, SQLException {
		//1、加载连接器(驱动)  Driver
		Class.forName("com.mysql.jdbc.Driver");
		//用类反射加载,更灵活

		//2、建立连接
		//String url = "jdbc:mysql://127.0.0.1:3306/hncu";//这一句是采用默认编码
		String url = "jdbc:mysql://127.0.0.1:3306/hncu?useUnicode=true&characterEncoding=utf-8";//采用指定编码连接

		Connection con  = DriverManager.getConnection(url, "root", "1234");
		//这3个参数是:连接串、用户名、密码

		//3、获取语句对象
		Statement st = con.createStatement();
		//对表格hncu增加一行数据

		//4 对数据库进行操作(查询)
		String sql = "select * from stud where sname like '%三%' or sname like '%四%';";
		ResultSet rs =  st.executeQuery(sql);
		while(rs.next()){
			//为什么不用hasNext呢,因为rs就像一个指针,rs最开始的位置并不是指向第一个数据,
			//而是指向开头地址,所以不能用hasNext来判断,而必须跳过第一个不读.
			String sno = rs.getString(1);//指定列号的方式读取。第一列的序号为1。

			String sname = rs.getString("sname");//指定列名的方式来读取
			int age = rs.getInt("age");
			String saddress = rs.getString(4);
			System.out.println(sno+","+sname+","+age+","+saddress);
		}
	}
}

此处是查询sname带有三,或者带有四的数据。

其他的都是这样,改掉sql语句就可以进行对应的增删改查了!

时间: 2024-11-08 16:15:10

MySQL---数据库从入门走上大神系列(二)-用Java对MySQL进行增删改查的相关文章

MySQL---数据库从入门走上大神系列(三)-修改数据库编码/DOS窗口编码

如何查看与修改数据库的编码,如何修改dos窗口的显示编码,都在本篇详细讲解. 查看当前数据库的编码: show variables where variable_name like 'character%'; 如果出现了中文乱码,我们只要看: character_set_client -客户端的编码 character_set_connection -连接的编码(传输时的编码) character_set_results - 最后的输出编码 只要保证这三个编码是相同的,且编码集有中文,中文就不会

MySQL---数据库从入门走上大神系列(四)-子查询、表与表之间的关系

本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系! 准备: 首先我们创建一列sex.再为部分行设置好值0(女)或者1(男): delete from stud where age=26; 删除年龄为26的行. update stud set sex='1' where saddress like '湖南%'; 将地址中湖南开头的人的的sex修改为1. update stud set sex='0' where age>=30 and sex is null;

MySQL---数据库从入门走上大神系列(四)-存储过程

本篇博客讲解: 自动增长列.字段值唯一性约束.存储过程.区分大小写的查询! 自动增长列.字段值唯一性约束 create table aa( id int auto_increment primary key, sname varchar(32) unique ); insert into aa values(5,'abc'); 创建一个自动增长的id属性(最开始不设置就从0开始增长) (后面的id如果有值了,如果添加数据时没有设置id,MySQL就会用最大的id加1做为最新的id) 注意:aut

MySQL---数据库从入门走上大神系列之一

从最开始的创建数据库,创建表,创建列开始写起,再到常用的EXISTS函数,SELECT 复杂查询,模糊查询LIKE,创建视图 等深入学习. 为了对单词加深印象,全部在DOS下演示! 创建数据库.表 <span style="font-size:14px;">create database hncu character set utf8; </span> 创建名为hncu编码为utf-8的数据库. <span style="font-size:14

转发---十大编程算法助程序员走上大神之路

十大编程算法助程序员走上大神之路 本文为转发,源地址:http://linux.cn/article-3613-1.html 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and co

十大编程算法助程序员走上大神路

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1 从数列中挑出一个元素,称为 "

MySQL---数据库从入门走向大神系列(九)-用Java向数据库读写大文本/二进制文件数据

介绍MySQL的文本和图形数据类型: Text 类型: 数据类型:描述 ------------------------------------------------------ char(size):保存固定长度的字符串(可包含字母.数字以及特殊字符).在括号中指定字符串的长度.最多 255 个字符. varchar(size):保存可变长度的字符串(可包含字母.数字以及特殊字符).在括号中指定字符串的最大长度.最多 255 个字符. 注释:如果值的长度大于 255,则被转换为 text类型

十大编程算法助程序员走上大神之路

概述:编程算法,是完成程序逻辑的主要途径.本文推荐十大编程算法,有利于程序员的编程逻辑. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(lis

MySQL---数据库从入门走向大神系列(八)-在java中执行MySQL的存储过程

http://blog.csdn.net/qq_26525215/article/details/52143733 在上面链接的博客中,写了如何用MySQL语句定义和执行存储过程 Java执行存储过程: 准备表stud: 列类型分别为: varchar,varchar,int 定义的存储过程分别为: p1:-无参 delimiter && create procedure p1() begin insert into stud values('P100','小李',43); select