java对数据库的操作总结
程序员文章站
2022-06-01 22:41:29
...
环境
jdk版本:java 1.8
数据库:mysql 8.0.13
数据库的连接
- 需要加载驱动到工程中
点击跳转到百度网盘下载,提取码:i74s - 连接数据库
package S;
/**
* 数据库的连接
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class test01 {
public static void main(String[] args) {
test01 conn = new test01();
conn.TheSqlConnection();
}
private static final String URL = "jdbc:mysql://localhost:3306/vincenttest?"
+ "serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false";//数据库连接字符串,vincenttest为要连接的数据库的名称
private static final String NAME="root";//登录名
private static final String PASSWORD="**********";//密码
public void TheSqlConnection()
{
try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
} catch (ClassNotFoundException e) {
System.out.println("未能成功加载驱动程序,请检查是否导入驱动程序!");
//添加一个println,如果加载驱动异常,检查是否添加驱动,或者添加驱动字符串是否错误
e.printStackTrace();
}
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, NAME, PASSWORD);
System.out.println("获取数据库连接成功!");
} catch (SQLException e) {
System.out.println("获取数据库连接失败!");
//添加一个println,如果连接失败,检查连接字符串或者登录名以及密码是否错误
e.printStackTrace();
}
}
//此方法方便后续的程序去实现连接数据的操作
public static Connection getconnection() throws SQLException {
return DriverManager.getConnection(URL, NAME, PASSWORD);
}
}
查询操作
- 以验证密码为例子
//此方法用来验证密码:(idname为用户的id,pas为用户输入的密码);
//思路:此方法先用用户的ID查询到数据库中对应的密码再与用户输入的密码进行比较
public boolean checkpassword(int idnum,String pas)
{
String password = " ";
String sql = "select Password from Vincenttest.kcsj where ID = '"+idnum+"'";
try {
Statement sta = test01.getconnection().createStatement();
ResultSet rs = sta.executeQuery(sql);//<----用executeQuery()方法执行
while(rs.next()){
password = rs.getString("Password"); //在次数根据ID获取相应的密码;
}
} catch (SQLException e) {
e.printStackTrace();
}
//在此数将用户输入的密码与数据库中得密码进行比较
if(pas.equals(password)){
return true ;
}else{
return false ;
}
}
插入操作
- 用户注册为例:
//idnum为用户要注册的ID, pas为用户填入的初始密码,此方法返回值为int,如果执行不成功返回0;成功返回1;
public int zhuce(int idnum, String pas)
{
int sco = 0 ;
int i = 0;
String sql = "insert into vincenttest.kcsj (ID,Password,Score) Values('"+idnum+"','"+pas+"','"+sco+"')";
try {
Connection conn = test01.getconnection();
Statement sta = conn.createStatement();
i = sta.executeUpdate(sql); //执行成功 i = 1;<------用executeUpdat()方法
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
更新操作
- 用户的数据的修改为例(如用户在某处得分的修改)
//此方法用来更新数据,根据提供的ID去修改相应的分数sco,返回值为int,执行成功返回1,执行失败返回0
public int genxing(int idnum,int sco)
{
int scor = chaxun(idnum) + sco ;
int i = 0; //用于判断sql语句的执行
String sql = "UPDATE vincenttest.kcsj set Score = '"+scor+"' where ID = '"+idnum+"'";
try {
Connection conn = test01.getconnection();
Statement sta = conn.createStatement();
i = sta.executeUpdate(sql); //执行成功 i = 1; <------用executeUpdat()方法
} catch (SQLException e) {
e.printStackTrace();
}
return i ;
}
删除操作
- 以删除用户为例
//此方法用于删除用户;删除用户ID。返回值为int,执行成功返回1,执行失败返回0.
public int dele(int idnum)
{
int i = 0 ; // 用于判断sql语句的执行效果;
String sql = "DELETE from vincenttest.kcsj where ID = '"+idnum+"'";
try {
Connection conn = test01.getconnection();
Statement sta = conn.createStatement();
i = sta.executeUpdate(sql); //<------用executeUpdat()方法
} catch (SQLException e) {
e.printStackTrace();
}
return i ; //执行成功返回1;
}