一.批处理:
1.批处理时即可以用statement ,也可以用preparedstatement,一般可用后者。
用后者的特点:
PreparedStatement ps = con.prepareStatement(sqlURL+"?,?,?,?,null)");
ps.addBatch(sqlURL);
ps.addBatch(sqlURL2);
ps.addBatch(sqlURL3)
ps.execute()//是用来执行初始化语句
ps.executeBatch()//是用来执行ps.addBatch中的语句。
对于statement也用此特点。但.createStatement不能初始化.但可用stet.updateExecuate(sql) .
2.批处理有一个完整的sql操作过程的需要。它可以决定操作的回不回退,来确定操作的特征:
使用批处理是要考虑到异常的后果,是否已经到达操作的目的。
3.二个表没办法通过sql语句合并,只是select 和 jion能获取一个二个表的结果集合而已。
唯一的办法:一个个的读取,一个个的insert。
4.批处理中不能有b/lob类型进行preparedStatement.setC/Blob()。
二.SQL语句:
1.对于update,insert等都可以用?表示当时未用,然后对其进行setxxx("")即补上.
2.对于integer类型的字段可以采用自动增长的方式:*声明标的方式如下:
createURL=CREATE TABLE netPage( orderList INT AUTO_INCREMENT, url VARCHAR(200), title VARCHAR(50), createTime DATE, file TEXT,PRIMARY key(orderList), KEY(url) )
注当设定二个KEY值时,数据库先检验第一个key,如果没有相同的就不检验第二个,如果有才检验。只有当某行的二个key都一样时才报错。
3.当要对表进行清空要用TRUNCATE TABLE netpagebak,如果用delete *的话,就会当表为空时,回报错 。
4.DELETE netPageBak.* FROM netPageBak,netPage WHERE netPageBak.url=netPage.url 的意思是:
从netPageBak中删除含有与netpage中url相同的url行。
5.在用到数据库的字段是要回避含有:的string作为某一个字段的值。会出异常的(sql语法不对)。
6.使用RowSet.getString(int),该int从1开始对应相关的列字段。
三.数据类型:
1.在用到where语句的条件是:=null;将会被认为没有条件一样,即使对应的确实有字段的值为null.一搬在该字段为null时,可用该字段的默认值,或空值。
2。可用limit语句对检索的行数结果限制。例:
SELECT * FROM netPage WHERE createTime="" LIMIT 10
注:LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量(从第几行开始)(可选),第二个参数指定返回记录行的最大数目。这是mysql的使用方法,其他数据库有类似的操作。
四.异常:
1。在设计方法来共享同一个connection 时,要注意有关异常产生的情况,可能导致connection没有及时关闭,因此要在每一个异常出现时设置关闭connection
2.java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1797)
at com.mysql.jdbc.Connection.<init>(Connection.java:562)
其异常是由于数据库的连接出问题了。
五.数据库大对象:
一.当有大对象的使用:
1.COLB是代表大的数据(字符型) Blob代表大的二进制数据类型 对于这些大对象而言在初始的时候要付null值否则会出错。
2.在用到sql语句的时候一定要保证语句的完整性。:
1)用逗号表示字段之间的间隔。
2)对于含values的语句注意括符的匹配。
3)当用字符串表示sql语句是要注意''号来表示字符串。
例:sqlURL=sqlURL+num+",'"+hsStr+"','"+title+"','"+date.toString()+"',"+null+");";
注:sql结尾可无;
3.一般不采用blob,clob,而采用long,long raw的原因是:需要平台的支持。
本文地址:http://com.8s8s.com/it/it9830.htm