一、常用 MySQL 语句
(一)创建数据库
create database 数据库名;
例如:创建一个名为 hello 的数据库
create database hello;
注:如果起初没有任何数据库,那么在建立连接的时候,地址 String address="jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=UTC"; 里蓝色数据库的位置可以省略。等待数据库建立之后,再将其补上,即可建立与该数据库的连接。
(二)创建表
create table 表名 (第一列名称 第一列类型,第二列名称 第二列类型……);
例如:创建一个名为 user 的表,表内三列,分别是 int 类型的 id,varchar(10)类型的 username 和 varchar(10)类型的 userpassword
create table User (id int,username varchar(10),userpassword varchar(10));
(三)给表添加列
alter table 表名 add 列名 列类型;
例如:给 user 表添加一个 varchar(10) 类型的 phoneNumber 列
alter table user add phoneNumber varchar(10);
(四)添加行数据
insert into 表名 (列名1,列名2……) values (值1,值2……);
例如:给 user 表添加 id 为 7,username 为 Tom,userpassword 为 123 的一行数据
insert into user (id,username,userpassword) values (7,"Tom","123");
(五)更新数据
update 表名 set 列名1=值1,列名2=值2…… where 条件;
例如:把 user 表中第 7 行的 username 改为 Jerry,userpassword 改为 258
update user set username="Jerry",userpassword="258" where id=7;
(六)删除整行数据
delete from 表名 where 条件;
例如:删除 user 表中 id 为 7 的一行
delete from user where id=7;
(七)删除表
drop table 表名;
例如:删除 user 表
drop table user;
(八)删除数据库
drop database 数据库名;
例如:删除 hello 数据库
drop database hello;
(九)查询
① 查询所有
select * from 表名;
例如:查询 user 表的所有数据
select * from user;
② 有条件查询
select 列名1,列名2 from 表名 where 条件;
例如:查询 user 表中 id 为 7 的 username 和userpassword
select username,userpassword from user where id=7;
二、Statement
Statement 是建立在 java 与 MySQL 连接上的一个接口,用以执行 MySQL 语句。
(一).execute(sql语句)
返回一个布尔值,true 表示此次操作产生了一个结果集,false 表示此次操作没有产生结果集。
Statement stm=();
boolean x=("update user set username='Jerry',userpassword='258' where id=7;");
boolean y=("select * from user");
本案例中,x 等于 false,没有产生结果集;y 等于 true,产生了结果集。
(二).executeUpdate(sql语句)
返回一个int型数值,表示受影响的行数。
Statement stm=();
int x=("update user set username='Jerry',userpassword='258' where id=7;");
本案例中,x 等于 1,表示该操作只影响了 1 行。
(三).executeBatch()
返回一个int型数组,内容不是 0 就是 1,前者表示执行失败,后者表示执行成功。该方法需要配合 .addBatch(sql语句) 使用。
Statement stm=();
("update user set username='Jerry',userpassword='258' where id=7;");
("insert into user (id,username,userpassword) values (8,"Tom","147");");
int[] xarr=();
for(int x:xarr)
{(x);}
(四).executeQuery(sql语句)
返回一个 ResultSet 结果集。
Statement stm=();
ResultSet rs=("select * from user;");
三、ResultSet 结果集
(一)移动游标
Statement stm=();
ResultSet rs=("select * from user");
(); //将游标移动至下一行
(); //将游标移动至上一行
(); //将游标移动至第一行
(); //将游标移动至最后一行
(5) //将游标移动至第5行
(-2) //将游标向上移动2行
默认游标指向第 0 行,所以即使结果集里只有一个数据,也要移动游标才能获得。
(二)获取值
Statement stm=();
ResultSet rs=("select * from user");
while(())
{
int id=("id"); //获取id值
String name=("username"); //获取username值
String pwd=("userpassword"); //获取userpassword值
}
//括号内的参数除了用列名之外,还可以用列索引,从1开始
(三)获取行号
Statement stm=();
ResultSet rs=("select * from user");
();
int x=(); //获取行号,此时行号显然为 1
(四)获取列信息
Statement stm=();
ResultSet rs = ("select * from user;");
ResultSetMetaData metaData = ();
//引入ResultSetMetaData,ResultSetMetaData是获取ResultSet对象元数据信息的接口
int columnCount = (); //一共多少列
for (int i = 1; i <= columnCount; i++)
{
String columnName = (i); //获取第i列的列名
String columnType = (i); //获取第i列的类型
("列名: " + columnName + ", 类型: " + columnType);
}
(五)判断上次取值是否为空
Statement stm=();
ResultSet rs = ("select * from user;");
();
boolean x=(); //判断上次取值是否是空
(六)关闭结果集
(); //关闭结果集并释放资源
四、在 java 中保存 MySQL 数据
① 建立一个对象类,表中每一行都是一个对象
public class User {
int id;
String username;
String userpassword;
public User(int id,String username,String userpassword) {
=id;
=username;
=userpassword;
}
public int getId() {
return id;
}
public void setId(int id) {
= id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
= username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
= userpassword;
}
}
② 声明一个该对象类型的 ArrayList 数组,并通过构造方法将每个对象实例化,然后用 ArrayList 的 .add() 方法将实例化后的对象添加进 ArrayList 数组
import ;
import ;
import ;
import ;
import ;
public class Test {
public static void main(String[] args) {
Connection conn=();
Statement stm=null; //声明一个空的statement对象
ResultSet userset=null; //声明一个空的resultset对象
try
{
stm=();
String sql="select * from userlogin";
userset=(sql); //查询结果放入ResultSet结果集
ArrayList<User> userlist=new ArrayList<User>(); //声明user型动态数组
while(())
{
int id=(1);
String username=(2); //循环获取每一行的id、username、userpassword
String userpassword=(3);
User u=new User(id,username,userpassword); //通过构造方法实例化每个对象
(u); //将对象挨个添加到动态数组中
}
for(User u:userlist)
{
(()+"\t");
(()+"\t"); //遍历
(());
}
}
catch (SQLException e)
{
();
}
finally
{
try
{
();
(); //关闭statement接口
(); //关闭conn连接
}
catch (SQLException e)
{
();
}
}
}
}