1.加载驱动--告诉驱动管理将使用哪一个数据库的驱动包。
class.forName("com.mysql.jdbc.Driver");
2.操作JDBC ADI完成数据库动作
Driver JDBC 驱动程序
Connection 定义到数据库连接,主要用statement 对象创建
resultset 接收查询SQL查询语句返回结果集对象。
statement 执行SQL语句的接口,通过相关方法执行静态SQL。
2-1获取链接
connection con = null;
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/t_name","root","root");
2-2 s书写SQL语句
String sql = "sql语句";
2-3 获取语句对象
Statement state = con.createStatement();
2-4 执行语句对象
int row = state.execateUpdate(sql);返回一个int 代表影响了多少行。
乱码处理:在url 后面加"?useUnicode = true&charatorEncoding = utf-8"
警告消除: 继续加"&useSSL = false"
预编译语句:preparedstatement
1.可以完全代替statement ,执行execateUpdate();和execateQuery();
2. 解决SQL注入问题,因为在执行之前,就把语句和String' SQL 绑定上,(交给数据库预先编译了),执行时不能改变SQL的结构
z注意:
1,?是用来代替语句中数据值的位置,不能代替跟结构有关的任何内容。
2.使用? 代替字符串的时候不能打引号。
3.不要滥用预编译,预编译语句过多也会影响数据库性能,当数据是从外部文本输入的时候才用他。
事务:transaction
是JDBC中一种让多条SQL语句作为一个整体,必须整体成功或者整体失败的技术。主要是控制的是DML语句,需要保证数据的完整性,DQL不参与事务。
事务开启分三步:这三部由一个对象完成--这多条SQL语句必须放到同一个连接完成。1.开启事务:con.setAuTocommit(false);开启事务,设置自动提交为假;
2.事务整体提交:con.commit();整体提交
3.事务整体回滚:con.rollback();catch 中加入如果失败,整体回滚;