以下也就是在Java中连接数据库对其进行操作:
CRUD是最常见的数据库操作,即增删改查
C 增加(Create)
R 读取查询(Retrieve)
U 更新(Update)
D 删除(Delete)
四者都挺相似的 只是传递不同的sql语句
select查询语句和CRUD不一样 需要返回数据 较为复杂
CRUD的操作都可以在MySQL中进行刷新以此验证
以下在Java中均是字符串的形式:
1、增加:
insert into 表名 values();
2、删除
delete from hero where …
3、修改
update hero set 字段名 = ‘’ where …
它们都是s.execute(); 方法来传递
以上可以直接写成一个类方法来调用 不用每次都class.forname然后try catch 之后的连接 陈述——statement
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.Scanner;
public class JDBCtest {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
String st="";
System.out.println("请输入sql语句:");
st=scan.nextLine();
JDBCtest.execute(st);
}
public static void execute(String str)
{
try {
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException s)
{
s.printStackTrace();
}
try(
Connection c=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root","admin");
Statement s=c.createStatement();
)
{
ResultSet rs=s.executeQuery(str);
while(rs.next()) {
int id=rs.getInt(1);
String name=rs.getString(2);
float hp=rs.getFloat(3);
int damage=rs.getInt(4);
System.out.printf("%d\t%s\t%f\t%d\t\n",id,name,hp,damage);
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
查询 select不同:
以上的代码包含查询的内容——executeQuery——主要的查询调用方法
将字符串形式的sql语句传递 配和该方法返回的ResultSet接口类型,(ResultSet为结果集)进行数据返回:
while(rs.next()) {
int id=rs.getInt(1);
String name=rs.getString(2);
float hp=rs.getFloat(3);
int damage=rs.getInt(4);
System.out.printf("%d\t%s\t%f\t%d\t\n",id,name,hp,damage);
}
判断输入内容是否正确也可以由 if else语句
if(rs.next())
System.out.println(“right”);
执行的sql语句为
select count(*) from hero
获取总数
注意while语句写在if(rs.next())里面会引起某些查找不执行
比如这种 当while语块在if(rs.next())语块中的时候