赞
踩
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 是建立在 java 与 MySQL 连接上的一个接口,用以执行 MySQL 语句。
返回一个布尔值,true 表示此次操作产生了一个结果集,false 表示此次操作没有产生结果集。
- Statement stm=conn.createStatement();
- boolean x=stm.execute("update user set username='Jerry',userpassword='258' where id=7;");
- boolean y=stm.execute("select * from user");
本案例中,x 等于 false,没有产生结果集;y 等于 true,产生了结果集。
返回一个int型数值,表示受影响的行数。
- Statement stm=conn.createStatement();
- int x=stm.executeUpdate("update user set username='Jerry',userpassword='258' where id=7;");
本案例中,x 等于 1,表示该操作只影响了 1 行。
返回一个int型数组,内容不是 0 就是 1,前者表示执行失败,后者表示执行成功。该方法需要配合 .addBatch(sql语句) 使用。
- Statement stm=conn.createStatement();
- stm.addBatch("update user set username='Jerry',userpassword='258' where id=7;");
- stm.addBatch("insert into user (id,username,userpassword) values (8,"Tom","147");");
- int[] xarr=stm.executeBatch();
- for(int x:xarr)
- {System.out.println(x);}
返回一个 ResultSet 结果集。
- Statement stm=conn.createStatement();
- ResultSet rs=stm.executeQuery("select * from user;");
- Statement stm=conn.createStatement();
- ResultSet rs=stm.executeQuery("select * from user");
- rs.next(); //将游标移动至下一行
- rs.previous(); //将游标移动至上一行
- rs.first(); //将游标移动至第一行
- rs.last(); //将游标移动至最后一行
- rs.absolute(5) //将游标移动至第5行
- rs.relative(-2) //将游标向上移动2行
默认游标指向第 0 行,所以即使结果集里只有一个数据,也要移动游标才能获得。
- Statement stm=conn.createStatement();
- ResultSet rs=stm.executeQuery("select * from user");
- while(rs.next())
- {
- int id=rs.getInt("id"); //获取id值
- String name=rs.getString("username"); //获取username值
- String pwd=rs.getString("userpassword"); //获取userpassword值
- }
-
- //括号内的参数除了用列名之外,还可以用列索引,从1开始
- Statement stm=conn.createStatement();
- ResultSet rs=stm.executeQuery("select * from user");
- rs.next();
- int x=rs.getRow(); //获取行号,此时行号显然为 1
- Statement stm=conn.createStatement();
- ResultSet rs = stm.executeQuery("select * from user;");
- ResultSetMetaData metaData = rs.getMetaData();
- //引入ResultSetMetaData,ResultSetMetaData是获取ResultSet对象元数据信息的接口
-
- int columnCount = metaData.getColumnCount(); //一共多少列
-
- for (int i = 1; i <= columnCount; i++)
- {
- String columnName = metaData.getColumnName(i); //获取第i列的列名
- String columnType = metaData.getColumnTypeName(i); //获取第i列的类型
- System.out.println("列名: " + columnName + ", 类型: " + columnType);
- }
- Statement stm=conn.createStatement();
- ResultSet rs = stm.executeQuery("select * from user;");
- rs.next();
- boolean x=rs.wasNull(); //判断上次取值是否是空
rs.close(); //关闭结果集并释放资源
① 建立一个对象类,表中每一行都是一个对象
- public class User {
-
- int id;
- String username;
- String userpassword;
-
- public User(int id,String username,String userpassword) {
- this.id=id;
- this.username=username;
- this.userpassword=userpassword;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getUserpassword() {
- return userpassword;
- }
-
- public void setUserpassword(String userpassword) {
- this.userpassword = userpassword;
- }
- }
② 声明一个该对象类型的 ArrayList 数组,并通过构造方法将每个对象实例化,然后用 ArrayList 的 .add() 方法将实例化后的对象添加进 ArrayList 数组
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
-
- public class Test {
-
- public static void main(String[] args) {
-
- Connection conn=GetConnection.getconnection();
- Statement stm=null; //声明一个空的statement对象
- ResultSet userset=null; //声明一个空的resultset对象
- try
- {
- stm=conn.createStatement();
- String sql="select * from userlogin";
- userset=stm.executeQuery(sql); //查询结果放入ResultSet结果集
- ArrayList<User> userlist=new ArrayList<User>(); //声明user型动态数组
-
- while(userset.next())
- {
- int id=userset.getInt(1);
- String username=userset.getString(2); //循环获取每一行的id、username、userpassword
- String userpassword=userset.getString(3);
-
- User u=new User(id,username,userpassword); //通过构造方法实例化每个对象
- userlist.add(u); //将对象挨个添加到动态数组中
- }
-
- for(User u:userlist)
- {
- System.out.print(u.getId()+"\t");
- System.out.print(u.getUsername()+"\t"); //遍历
- System.out.println(u.getUserpassword());
- }
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- userset.close();
- stm.close(); //关闭statement接口
- conn.close(); //关闭conn连接
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。