JDBC用法
Class.forname("com.mysql.cj.jdbc.Driver");注册驱动
String mrl = "jdbc:mysql:///cgb2109";创建连接,遵循的协议
Connection c = DriverManager.getConnection(url, "root", "root");账户密码
Statement s = c.createStatement();这个传输器不太好,会有SQL攻击的风险
String s1 = new Scanner(System.in).nextLine();获取键盘输入s1
String s2 = new Scanner(System.in).nextLine();获取键盘输入s2
String sql = "这里是SQL的语句,要查询什么,可以使用?占位符";sql的语句,要查询还是增删改
PreparedStatement s = c.prepareStatement(sql);新的传输器:高效安全
s.setObject(1,s1);给?赋值,1是代表的是第一个?,s1是获取键盘输入的值
s.setObject(2,s2);给?赋值,2是代表的是第二个问号,s2是键盘获取的值
ResultSet r = s.executeQuery();该传输器的查询方法
int r = s.executeUpdate();这个是该数据的增删改
注册驱动可以不写,导的包里写有。关流的话是正着用反着关
sql的攻击就是出现#号,sql会把井号看作是注释符
下面是新的传输器
//sql骨架,问好?为占位符
String sql = "select * from user where name=? and pwd=?";
PreparedStatement s = c.prepareStatement(sql);
s.setObject(1,s1);
s.setObject(2,s2);
ResultSet r = s.executeQuery();
把注册驱动,创建连接,账号密码,建一个工具类。
返回值为c,类型为Connection
把工具类设为静态资源
可以通过类名直接调用 。被全局共享,值只有一份 。优先于对象加载而加载
package cn.tedu.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCUtils { public static Connection get() throws Exception { Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql:///cgb2109";
Connection c = DriverManager.getConnection(url, "root", "root");
return c;
} }