首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

JDBC编程及事宜的实现

2012-08-02 
JDBC编程及事务的实现JDBC的介绍:JDBC是连接数据库与java程序的桥梁。由java编写的类和接口组成。JDBC 能够

JDBC编程及事务的实现
JDBC的介绍:
      JDBC是连接数据库与java程序的桥梁。由java编写的类和接口组成。
       JDBC 能够连接 Oracle,MySQL,DB2,SQL Server 等.


JDBC 连接MySQL数据库:
       首先,现在Eclipse上添加驱动,即添加mysql-connector-java-版本号-bin.jar文件。若没有添加,则会报 java.lang.ClassOntFoundException 错误。
       然后在类里实现连接的语句:
              //首先创建一个连接对象;
               public static Connection conn;
              //注册驱动;
                Class.forName("com.mysql.jdbc.Driver");
   //创建连接;
     String url = "jdbc:mysql://localhost:3306/lesson1";
    String user = "root";
    String psw = "*****";
   //得到连接对象;
     conn = DriverManager.getConnection(url, user, psw);


JDBC中实现对数据库的查询与插入等操作:
      1.查询操作需要返回一个结果集ResultSet
       首先,由Connection对象得到一个Statement对象,然后由Statement得到结果集ResultSet。然后从结果集ResultSet中得到数据库中的数据;
        实现代码如下:
                    //得到Statement对象;
                     Statement st = conn.createStatement();
                 //要写如的sql语言,例如:;
String sql = "select * from userInfo";
        //得到结果集;
                  ResultSet rs = st.executeQuery(sql);
                 //当结果集不为空是,rs.next()返回true
        while(rs.next()){
                  }
      2.插入,更新 等操作不需要返回结果集,但经常需要从程序中获取不同的值 进行插
        入,所以应采用预编译。
          实现代码如下:
                    //要执行的Sql语句;
                    String sql = "insert into userInfo
                           (username,userclass)values(?,?);";
        //得到预编译的对象;
                  PreparedStatement pst = conn.prepareStatement(sql);
                 //可以发现sql语句中有问号?,每一个问号其实是占了一个位置,
                      代表了要插入的值。问号的位置是由 1 开始,不是0.
                   下面是指定“?”所代表的值。
pst.setString(1, username);
pst.setString(2, userclass);
        //预编译对象执行更新操作;
pst.executeUpdate();
               
JDBC中事务的实现:
       事务的定义:事务是一组原子操作单元。即不可分割的操作。
         举个例子,去ATM机中取钱是以个事务。在输入要取的钱数,执行取钱
                   操作,但是因为余额不足或是系统故障,而导致 钱去不出来。这时候,
                   卡上的钱数已经被减。但是系统会执行 回滚rollback操作,让卡上余
                   额恢复到没有取钱时的状态。
      实现以个事务的代码如下:
                  //连接对象Connection conn;
                    设置自动提交 为false(程序执行时,每条语句都是自动提交的);
                   conn.setAutoCommit(false);
               //因为执行 事务时可能会出现异常,则需要try{}catch{}
                 try{
                    
                     事务的执行步骤;
            
                    }catch(Exception e){
                   
                     事务执行出错,实现回滚
                         conn.rollback();
                     
                    }
                  

热点排行