课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java 数据库基本操作
  • java 数据库基本操作

    发布:昆明Java培训      来源:达内新闻      时间:2016-02-28

  •  

    昆明java培训机构老师给大家讲解一下,java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接:

    1、取得数据库连接

    1)DriverManager取数据库连接

    例子

    String className,url,uid,pwd;

    className = "oracle.jdbc.driver.OracleDriver";

    url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;

    uid = "system";

    pwd = "manager";

    Class.forName(className);

    Connection cn = DriverManager.getConnection(url,uid,pwd);

    2)jndi(java的命名和目录服务)方式

    例子

    String jndi = "jdbc/db";

    Context ctx = (Context) new InitialContext().lookup("java:comp/env");

    DataSource ds = (DataSource) ctx.lookup(jndi);

    Connection cn = ds.getConnection();

    2、执行sql语句

    1)Statement来执行sql语句

    String sql;

    Statement sm = cn.createStatement();

    sm.executeQuery(sql); // 执行数据查询语句(select)

    sm.executeUpdate(sql); // 执行数据更新语句(deleteupdateinsertdrop)statement.close();

    2)PreparedStatement来执行sql语句

    String sql;

    sql = "insert into user (id,name) values (?,?)";

    PreparedStatement ps = cn.prepareStatement(sql);

    ps.setInt(1,xxx);

    ps.setString(2,xxx);

    ...

    ResultSet rs = ps.executeQuery(); // 查询

    int c = ps.executeUpdate(); // 更新

    3、处理执行结果

    查询语句,返回记录集ResultSet

    更新语句,返回数字,表示该更新影响的记录数

    ResultSet的方法

    1next(),将游标往后移动一行,如果成功返回true;否则返回false

    2getInt("id")getSting("name"),返回当前游标下某个字段的值

    4、释放连接

    cn.close();

    一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection

    可滚动、更新的记录集

    1、创建可滚动、更新的Statement

    Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);

    Statement取得的ResultSet就是可滚动的

    2、创建PreparedStatement时指定参数

    PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

    ResultSet.absolute(9000);

    5、批量更新

    1Statement

    Statement sm = cn.createStatement();

    sm.addBatch(sql1);

    sm.addBatch(sql2);

    ...

    sm.executeBatch()

    昆明java培训提醒一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是deleteupdateinsert等或兼有

    2PreparedStatement

    PreparedStatement ps = cn.preparedStatement(sql);

    {

    ps.setXXX(1,xxx);

    ...

    ps.addBatch();

    }

    ps.executeBatch();

    一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。

    6、事务的处理

    1、关闭Connection的自动提交

    cn.setAutoCommit(false);

    2、执行一系列sql语句

    昆明java培训提醒执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close

    Statement sm ;

    sm = cn.createStatement(insert into user...);

    sm.executeUpdate();

    sm.close();

    sm = cn.createStatement("insert into corp...);

    sm.executeUpdate();

    sm.close();

    3、提交

    cn.commit();

    4、如果发生异常,那么回滚

    cn.rollback();

    昆明java培训这一久分享的知识量比较大,课后记得常复习啊!

     

    推荐文章

上一篇:昆明java培训讲解J2ME的跨平台性

下一篇:Java内存管理的技巧

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56