Java 之 数据库编程(JDBC)

1.JDBC

  a.定义:是一种用于执行SQL语句的Java API,它由一组用Java 语言编写的类和接口组成

  b.操作步骤:

    ①加载驱动——告诉驱动管理器我们将使用哪一个数据库的驱动包

     Class.forName("com.mysql.jdbc.Driver");        // try - catch

 

    ②操作JDBC API完成数据库动作

      常用方法:Connection:连接

           Statement:语句对象

           ResultSet:查询语句返回的结果集

       //2-1、获取连接
        Connection con = null;
        try {
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test134" +
                    "?useUnicode=true&characterEncoding=utf8&useSSL=false", "root", "root");
            //2-2、书写SQL语句---字符串拼接、
            String sql = "insert into t_class(f_classname,f_teacher) values('"+className+"','"+teacherName+"')";
            //2-3、获取语句对象---Statement对象
            Statement state = con.createStatement();
            //2-4、执行语句对象---所有的DML语句,全部执行executeUpdate()方法
            int row = state.executeUpdate(sql);    //返回的int代表影响了多少行!    
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally{
            //2-5、关闭连接
            if(con != null){
                try {
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
        }

    注:以上是 增、删、改 的方法,查询需要用到一下语句

     ResultSet rs = state.executeQuery(sql);

 

  c. url:

    ①定义:统一资源定位符

    ②样式:协议 : // ip地址 : 端口号 / 服务

     jdbc:mysql://127.0.0.1:3306/test134

 

 

2.PreparedStatement——预编译语句

  a.特点:①可以完全替代statement,执行executeUpdate()和executeQuery()

      ②解决SQL注入问题

      ③因为在执行之前就把语句和String SQL绑定上(交给数据库预先编译了),执行时不能再改变SQL的结构

  b.注意:①?是用来替代语句中的数据值的位置,不能替代跟结构有关的任何内容

      ②使用?替代字符串值的时候,不能打引号

      ③不要滥用预编译,预编译语句过多也会影响数据库性能;当数据值是由外部文本输入的时候,才用它

  String sql = "select * from t_user where f_username=? and f_password=?";
  PreparedStatement ps
= con.prepareStatement(sql);   ps.setString(1,name);   ps.setString(2, pwd);
  ResultSet rs
= ps.executeQuery();

 

 

3.事务——Transaction

  a.定义:是JDBC中的一种,让多条SQL语句作为一个整体,必须整体成功或整体失败

  b.作用:主要控制的是DML语句,需要保证数据的完整性;DQL语句可以不参与事务

  c.步骤:事务操作分为三步——这三步都由一个对象完成——Connection

    1.开启事务——设置自动提交为假

con.setAutoCommit( false );

    2.整体提交

con.commit();

    3.在Catch块中,整体回滚

con.rollback;

 

posted @ 2017-01-02 09:56  晨M风  阅读(202)  评论(0编辑  收藏  举报