|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的编程|技能|数据|数据库 1、java数据库操纵基础流程
2、几个经常使用的主要技能:
可转动、更新的纪录集
批量更新
事件处置
java数据库操纵基础流程:获得数据库毗连-实行sql语句-处置实行了局-开释数据库毗连
1、获得数据库毗连
1)用DriverManager取数据库毗连
例子:
StringclassName,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);
Connectioncn=DriverManager.getConnection(url,uid,pwd);
2)用jndi(java的定名和目次服务)体例
例子
Stringjndi="jdbc/db";
Contextctx=(Context)newInitialContext().lookup("java:comp/env");
DataSourceds=(DataSource)ctx.lookup(jndi);
Connectioncn=ds.getConnection();
多用于jsp中
2、实行sql语句
1)用Statement来实行sql语句
Stringsql;
Statementsm=cn.createStatement();
sm.executeQuery(sql);//实行数据查询语句(select)
sm.executeUpdate(sql);//实行数据更新语句(delete、update、insert、drop等)statement.close();
2)用PreparedStatement来实行sql语句
Stringsql;
sql="insertintouser(id,name)values(?,?)";
PreparedStatementps=cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSetrs=ps.executeQuery();//查询
intc=ps.executeUpdate();//更新
3、处置实行了局
查询语句,前往纪录集ResultSet。
更新语句,前往数字,暗示该更新影响的纪录数。
ResultSet的办法:
1、next(),将游标今后挪动一行,假如乐成前往true;不然前往false。
2、getInt("id")或getSting("name"),前往以后游标下某个字段的值。
3、开释毗连。
cn.close();
一样平常,先封闭ResultSet,然后封闭Statement(大概PreparedStatement);最初封闭Connection
可转动、更新的纪录集
1、创立可转动、更新的Statement
Statementsm=cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
该Statement获得的ResultSet就是可转动的
2、创立PreparedStatement时指定参数
PreparedStatemetps=cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet.absolute(9000);
批量更新
1、Statement
Statementsm=cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
一个Statement对象,能够实行多个sql语句今后,批量更新。这多个语句能够是delete、update、insert等或兼有
2、PreparedStatement
PreparedStatementps=cn.preparedStatement(sql);
{
ps.setXXX(1,xxx);
...
ps.addBatch();
}
ps.executeBatch();
一个PreparedStatement,能够把一个sql语句,变更参数屡次实行,一次更新。
事件的处置
1、封闭Connection的主动提交
cn.setAutoCommit(false);
2、实行一系列sql语句
要点:实行每个新的sql语句前,上一次实行sql语句的Statement(大概PreparedStatemet)必需先close
Statementsm;
sm=cn.createStatement(insertintouser...);
sm.executeUpdate();
sm.close();
sm=cn.createStatement("insertintocorp...);
sm.executeUpdate();
sm.close();
3、提交
cn.commit();
4、假如产生非常,那末回滚
cn.rollback();
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 |
|