import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class MySql {
static final String URL = "jdbc:mysql://localhost:3306/databasetest";
//加载驱动
static{
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获得数据库连接对象
public static Connection getConnection()
{
Connection conn = null;
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/databasetest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT", "root", "455464");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//测试插入
public static void main(String args[])
{
String sql1="insert into test1(id,name) values(7,'德芬迪')";
Connection conn = getConnection();
try {
Statement stmt = conn.createStatement();
int iRet = stmt.executeUpdate(sql1);
if(iRet >= 0)
{
System.out.println("执行成功");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
'or '1' = 1'永真式
PrepareStatement接口是Statement接口的子接口,
他继承了Statement接口的所有功能。
它主要是拿来解决我们使用Statement对象多次执行同一个SQL语句的效率问题的。
ParperStatement接口的机制是在数据库支持预编译的情况下预先将SQL语句编译,
当多次执行这条SQL语句时,可以直接执行编译好的SQL语句,
这样就大大提高了程序的灵活性和执行效率。
1>方法executeQuery
用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。
被使用最多的执行 SQL 语句的方法。这个方法被用来执行 SELECT 语句,
它几乎是使用最多的 SQL 语句。
但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
2>方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零
3>方法execute:
可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是ResultSet,则返回true,否则返回false。但它执行SQL语句时比较麻烦,通常我们没有必要使用execute方法来执行SQL语句,而是使用executeQuery或executeUpdate更适合,但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句了。