1,加载驱动---告诉驱动管理器我们将使用哪一个数据库的驱动包;
Class.forName(“com.mysql.jdbc.Driver”);
2,操作JDBC API 完成数据库动作
2-1.获取联接
Connection con = null;
//url—统一资源定位符---样式:协议://ip地址:端口号/服务
con=DriverManager.getConnection
(“jdbc:mysql://127.0.0.1:3306/test134?useUnicode=ture&charactorEncoding=utf8&useSSL=false” , ”root ” , ”密码 ”);
//2-2.书写SQL语句—字符串拼接
String sql = “ SQL语句 ”;
//2-3.获取语句对象---Statement 对象—所有的DML语句,全//部执行executeUpdate()方法
Statement state = con.createStatement();
//2-4.执行语句对象。
int row = State.executeUpdate(sql);//返回的int代表影响了多少行。
//2-3.关闭连接
if(con !=null){
con.close();
}
}
JDBC的常见API
Connection :定义到数据库的联接,主要用于创建Statement对象。
Statement :执行SQL语句的接口通过相关方法执行静态的SQL语句。
ResultSet :接受某查询SQL查询语句所返回的结果集对象。
PreparedStatement :预编译的SQL语句,结合参数可以大大提高JDBC的执行效率
语法:
PreparedStatement ps = con.preparedStatement(sql);
ps.setString(1,name);
ps.setString(2,pwd);
PreparedStatement rs =ps.executeQuery();
作用:1,可以完全替代Statement ,执行executeUpdate()和executeQuery();
2,解决SQL 注入问题;(字符串拼接)
3, 因为在执行之前就把语句和String SQL 绑定上(交给数据库预先编译了),执行时不能再改变的SQL的结构。
注意:
1、 ?是用来替代语句中的数据值的位置,不能替代跟结构有关的任何内容;
2、 使用?替代字符串值的时候,不能打上引号;
不要滥用预编译,预编译语句过多也会影响数据库性能,当数据值是由外部文本输入的时候才用