|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。数据|数据库|详解java数据库基础操纵
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"),前往以后游标下某个字段的值
4、开释毗连
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复杂,就是因为你把java(j2ee)与这些框架混在了一起。 |
|