通过Java代码实现对数据库的数据进⾏操作:增删改查
mysql面试题 增删改查(JDBC)
在写代码之前,依然是引⽤mysql数据库的jar包⽂件:右键项⽬—构建路径—设置构建路径—库—添加外部JAR
在数据库中我们已经建⽴好⼀个表xs ;分别有xuehao  xingming    xuexiao  三个列
然后我们开始码代码调⽤,进⾏增删改查
⾸先是增加
import java.sql.*;
public class XueYuan {
public static void main(String[] args) throws Exception {
Class.forName("sql.jdbc.Driver");//加载驱动
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";
Connection Connection(jdbc, "root", "");//链接到数据库
Statement ateStatement();  //容器
String sql="insert into xs values('1108','张伟','汉企')";  //SQL语句
conn.close();//关闭通道
}
执⾏后,数据中多了⼀⾏数据
删除数据
import java.sql.*;
public class XueYuan {
public static void main(String[] args) throws Exception {
Class.forName("sql.jdbc.Driver");//加载驱动
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";简单好玩的编程代码复制
Connection Connection(jdbc, "root", "");//链接到数据库
Statement ateStatement();  //容器
String sql="delete from xs where xuehao='1108'";  //SQL语句
conn.close();//关闭通道
}
}
执⾏后,数据库中xuehao为“1108”的数据的整⾏被删掉
修改数据
import java.sql.*;
public class XueYuan {
public static void main(String[] args) throws Exception {
Class.forName("sql.jdbc.Driver");//加载驱动
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";
Connection Connection(jdbc, "root", "");//链接到数据库
Statement ateStatement();  //容器
String sql="update xs set xuexiao='淄博汉企' where xuehao='1101' ";  //SQL语句        uteUpdate(sql);        //将sql语句上传⾄数据库执⾏
c语言转义字符表颜英文怎么读音conn.close();//关闭通道
}
}
数据库中的1101对应的xuexiao发⽣了改变
⼩结:数据的增删改⼏乎是⼀样的唯⼀不同的是SQL语句不同⽽已
查询数据
查询数据和增删改不同的地⽅是,我们需要获取,⽽正常获取时,我们获取到的是⼀个字符集import java.sql.*;
l.stream.events.StartElement;
public class Test3 {
public static void main(String[] args) throws Exception {
//导⼊驱动包
Class.forName("sql.jdbc.Driver");
//链接⾄数据库
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb";
Connection Connection(jdbc, "root", "");
Statement ateStatement();//容器
String sql="select * from xs";          //sql语句
ResultSet uteQuery(sql);    //将sql语句传⾄数据库,返回的值为⼀个字符集⽤⼀个变量接收
()){    //next()获取⾥⾯的内容
System.out.String(1)+" "+rs.getString(2)+" "+rs.getString(3));
//getString(n)获取第n列的内容
//数据库中的列数是从1开始的
}
conn.close();
}
js滚动特效获取的结果
例⼦:
输⼊账号和密码,在数据库中获取,如果有该信息,则显⽰其登陆成功,如果没有,则显⽰输⼊错误
有两种⽅法可以实现:
import java.sql.*;
import java.util.*;
public class Login {
public static void main(String[] args) throws Exception {
// 输⼊⽤户名和密码
Scanner sc=new Scanner(System.in);
System.out.println("请输⼊账号");
String Line();
System.out.println("请输⼊密码");
String Line();
/
/    placeAll("\'", "\"");    //替换
//    placeAll("\'", "\"");        //替换
//到数据库验证⽤户名和密码是否正确
Class.forName("sql.jdbc.Driver");
Connection Connection("jdbc:mysql://127.0.0.1:3306/mydb", "root", "");
Statement ateStatement();
String sql="select * from yonghu where zhanghao='"+zh+"' and mima='"+mm+"'";
ResultSet uteQuery(sql);
//输出:正确显⽰欢迎,不正确显⽰错误
()){
System.out.println("登陆成功!"+re.getString(3)+" 欢迎你");
}
else{
System.out.println("输⼊账号或密码错误");
}
conn.close();
}
}
实现了该功能
idea项目运行时不到jar包但是如果我们输⼊
同样会显⽰登陆成功(sql注⼊攻击),为避免出现这种情况我们加⼊两个替换
placeAll("\'", "\"")  将输⼊的所有单引号全部换成双引号,就可以避免这样的漏洞;但是这种⽅法治标不治本,根本原因是字符串的拼接的原因
从根本上解决问题还有⼀种写法在SQL语句中,不确定的条件⽤?代替,PreparedStatement(sql)容器来装setString( n ,m)来赋值n是第⼏个问号的位置,m是赋的值(数据的增删改同样适⽤这种⽅法)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。