黑马程序员__JDBC事务及将查询结果封装成对象通用(优秀范文五篇)

时间:2019-05-12 06:15:15下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《黑马程序员__JDBC事务及将查询结果封装成对象通用》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《黑马程序员__JDBC事务及将查询结果封装成对象通用》。

第一篇:黑马程序员__JDBC事务及将查询结果封装成对象通用

----------------------android培训、java培训、期待与您交流!

----------------------

事务(ACID):

1、原子性(atomicity):组成事物处理的语句形成了一个逻辑单元,不能只执行其中的一部分;

2、一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)

3、隔离性(isolcation):一个事务处理对另一个事务处理的影响;

4、持续性(durability):事务处理的效果能够被永久保存下来;

Connection.setAutoCommit(false);--à打开事务

Connection.commit();--à提交事务

Connection.rollback();--à回滚事务

保存点(SavePoint)

1、当只想撤销事务中的部分操作时可使用SavePoint2、SavePoint sp=connection.setSavePoint();

3、Connection.rollback(sp);connection.commit();

JTA:

1、跨越多个数据源的事务,使用JTA容器实现事务;

2、分成两阶段提交

Javax.transaction.UserTransaction tx=(UserTransaction)ctx.lookup(“jndiName”);Tx.begin();

隔离级别:读未提交(Read uncommitted)、读已提交(Read committed)、可重复读(Repeatable read)、可串行化(Serializable)--à脏读、不可重复读、幻读 批处理:PreparedStatement,addBatch();

PreparedStatement.executeBatch();

可滚动的结果集:

Statement st=connection.createStatement(Result.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

ResultSet rs=st.executeQuery(sql);

rs.beforeFirst();rs.afterLast();rs.first();rs.isFirst();rs.last();rs.isLast

();rs.absolute(9);

rs.moveToInsertRow();

可更新的结果集:

Conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

rs.updataString(“col name”,”new value”);

rs.updataRow();

DatabaseMetaData(数据库的元数据信息)和ParameterMetaData(参数的元数据信息)

1、DatabaseMetaData meta=connection.getMetaData();

2、通过DatabaseMetaData可以获得数据库相关的信息,如:数据库版本、数据库名、数据

库厂商信息、是否支持事务、是否支持某种事务隔离级别、是否支持滚动结果集等 ParameterMetaData pmd=preparedStatement.getParameterMetData();

通过ParameterMetaData可以获得参数信息;

ResultSetMetaData meta=rs.getMetaData();

通过ResultSetMetaData可以获得结果有几列、各列名、各列别名、各列类型等;

可以将ResultSet放入Map(key:列名 value:列值);

ORM(object、relation、map):-----à利用反射做的通用模块---à将查询结果封装为对象 package cn.itcast.jdbc;

publicclass ORMTest {

publicstaticvoid main(String[(参考:http://)] args)

throws IllegalArgumentException, SQLException, IllegalAccessException, InvocationTargetException{

User user=(User)getObject(“select id as Id,name as Name,birthday as Birthday,money as Money from user where id=1”,User.class);

System.out.println(user);

}

static Object getObject(String sql,Class clazz)

throws SQLException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{

Connection conn=null;

PreparedStatement ps=null;

ResultSet rs=null;

try{

conn=JDBCUtils.getConnection();

ps=conn.prepareStatement(sql);

rs=ps.executeQuery();

ResultSetMetaData rsmd=rs.getMetaData();

int count=rsmd.getColumnCount();

String[] colNames=new String[count];

for(int i=1;i<=count;i++){

colNames[i-1]=rsmd.getColumnLabel(i);

}

Object obj=null;

if(rs.next()){

obj=new User();

for(int i=0;i

String colName=colNames[i];

String methodName=“set”+colName;

Method[] ms=obj.getClass().getMethods();

for(Method m:ms){

if(methodName.equals(m.getName())){

m.invoke(obj, rs.getObject(colName));

}

}

}

}

return obj;

}finally{

JDBCUtils.free(conn, ps, rs);

}

}

}

----------------------

android培训、java培训、期待与您交流!

----------------------详细请查看:http://edu.csdn.net/heima

下载黑马程序员__JDBC事务及将查询结果封装成对象通用(优秀范文五篇)word格式文档
下载黑马程序员__JDBC事务及将查询结果封装成对象通用(优秀范文五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐