??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人精品激情,亚洲精品福利在线观看,亚洲日韩av无码中文http://www.tkk7.com/redcoatjk/category/48592.html万物皆对?万事归节?/description>zh-cnSat, 08 Mar 2014 06:07:27 GMTSat, 08 Mar 2014 06:07:27 GMT60Oraclel护常用SQLhttp://www.tkk7.com/redcoatjk/archive/2014/03/03/410543.htmlredcoatjkredcoatjkMon, 03 Mar 2014 07:48:00 GMThttp://www.tkk7.com/redcoatjk/archive/2014/03/03/410543.htmlhttp://www.tkk7.com/redcoatjk/comments/410543.htmlhttp://www.tkk7.com/redcoatjk/archive/2014/03/03/410543.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/410543.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/410543.html--查询表空间、表I间大小及表I间对应物理路径

select a.tablespace_name,b.file_name,a.block_size,a.block_size,b.bytes/1024

/1024 "Sum MB" from dba_tablespaces a,dba_data_files b where a.tablespace_name=b.tablespace_name;

--查询表空间用情?/h3>

  SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

  D.TOT_GROOTTE_MB "表空间大?M)",

  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已用空?M)",

  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用?,

  F.TOTAL_BYTES "I闲I间(M)",

  F.MAX_BYTES "最大块(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

  FROM SYS.DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F,

  (SELECT DD.TABLESPACE_NAME,

   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

  FROM SYS.DBA_DATA_FILES DD

  GROUP BY DD.TABLESPACE_NAME) D

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

  ORDER BY 1;

--查询表空间的free space

  select tablespace_name,

  count(*) as extends,

  round(sum(bytes) / 1024 / 1024, 2) as MB,

  sum(blocks) as blocks

  from dba_free_space

group by tablespace_name;

 

--查询表空间的d?/h3>

  select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  from dba_data_files

  group by tablespace_name;

 

 

--查询表空间用率

  select total.tablespace_name,

  round(total.MB, 2) as Total_MB,考试大论?/p>

  round(total.MB - free.MB, 2) as Used_MB,

  round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct

  from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  from dba_free_space

  group by tablespace_name) free,

  (select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  from dba_data_files

  group by tablespace_name) total

  where free.tablespace_name = total.tablespace_name;

 

 

1.查找当前表锁的SQL如下Q?/h3>

select sess.sid,

    sess.serial#,

    lo.oracle_username,

    lo.os_user_name,

    ao.object_name,

    lo.locked_mode

    from v$locked_object lo,

    dba_objects ao,

    v$session sess

where ao.object_id = lo.object_id and lo.session_id = sess.sid;

 

2.杀掉锁表进E:

alter system kill session '436,35123';

 

3.RAC环境中锁查找Q?/h3>

SELECT inst_id,DECODE(request,0,'Holder: ','Waiter: ')||sid sess,

        id1, id2, lmode, request, type,block,ctime

FROM GV$LOCK

WHERE (id1, id2, type) IN

       (SELECT id1, id2, type FROM GV$LOCK WHERE request>0)

ORDER BY id1, request;

  

 

 

4.监控当前数据库谁在运行什么SQL语句

select osuser, username, sql_text 

from  v$session a, v$sqltext b

where  a.sql_address =b.address order by address, piece;

 

 

 

5.找用CPU多的用户session

select a.sid,spid,status,substr(a.program,1,40) prog, a.terminal,osuser,value/60/100 value

from  v$session a,v$process b,v$sesstat c

where  c.statistic#=12 and 

       c.sid=a.sid and 

       a.paddr=b.addr 

       order by value desc;

 

 

6.查看死锁信息

SELECT (SELECT username

          FROM v$session

         WHERE SID = a.SID) blocker, a.SID, 'is blocking',

       (SELECT username

          FROM v$session

         WHERE SID = b.SID) blockee, b.SID

  FROM v$lock a, v$lock b

 WHERE a.BLOCK = 1 AND b.request > 0 AND a.id1 = b.id1 AND a.id2 = b.id2;

 

 

7.h最高等待的对象

SELECT   o.OWNER,o.object_name, o.object_type, a.event,

         SUM (a.wait_time + a.time_waited) total_wait_time

    FROM v$active_session_history a, dba_objects o

   WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE

     AND a.current_obj# = o.object_id

GROUP BY o.OWNER,o.object_name, o.object_type, a.event

ORDER BY total_wait_time DESC;

 

 

SELECT   a.session_id, s.osuser, s.machine, s.program, o.owner, o.object_name,

         o.object_type, a.event,

         SUM (a.wait_time + a.time_waited) total_wait_time

    FROM v$active_session_history a, dba_objects o, v$session s

   WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE

     AND a.current_obj# = o.object_id

     AND a.session_id = s.SID

GROUP BY o.owner,

         o.object_name,

         o.object_type,

         a.event,

         a.session_id,

         s.program,

         s.machine,

         s.osuser

ORDER BY total_wait_time DESC;

 

 

 

8.查询当前q接会话?/h3>

select s.value,s.sid,a.username

from

v$sesstat S,v$statname N,v$session A

where

n.statistic#=s.statistic# and

name='session pga memory'

and s.sid=a.sid

order by s.value;

 

 

 

9.{待最多的用户

SELECT   s.SID, s.username, SUM (a.wait_time + a.time_waited) total_wait_time

    FROM v$active_session_history a, v$session s

   WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE

GROUP BY s.SID, s.username

ORDER BY total_wait_time DESC;

 

 

 

10.{待最多的SQL

SELECT   a.program, a.session_id, a.user_id, d.username, s.sql_text,

         SUM (a.wait_time + a.time_waited) total_wait_time

    FROM v$active_session_history a, v$sqlarea s, dba_users d

   WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE

     AND a.sql_id = s.sql_id

     AND a.user_id = d.user_id

GROUP BY a.program, a.session_id, a.user_id, s.sql_text, d.username;

 

 

 

11.查看消耗资源最多的SQL

SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls

FROM V$SQLAREA

WHERE buffer_gets > 10000000 OR disk_reads > 1000000

ORDER BY buffer_gets + 100 * disk_reads DESC;

 

 

 

12.查看某条SQL语句的资源消?/h3>

SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls

FROM V$SQLAREA

WHERE hash_Value = 228801498 AND address = hextoraw('CBD8E4B0');

 

 

13.查询会话执行的实际SQL

SELECT   a.SID, a.username, s.sql_text

    FROM v$session a, v$sqltext s

   WHERE a.sql_address = s.address

     AND a.sql_hash_value = s.hash_value

     AND a.status = 'ACTIVE'

ORDER BY a.username, a.SID, s.piece;

 

 

14.昄正在{待锁的所有会?/h3>

SELECT * FROM DBA_WAITERS;

 

DDL

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

/*注意点:

 

1.如果在PL/SQL {工具里打开的话Q直接修改下面的代码中[斜体加粗部分]执行

 

2.保路径存在Q比如【D:\oracle\oradata\Oracle9i\】也是你要保存文g的\径存?/p>

 

/*分ؓ四步 */

 

/*W?步:创徏临时表空?nbsp; */

 

create temporary tablespace user_temp 

 

tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'

 

size 50m 

 

autoextend on 

 

next 50m maxsize 20480m 

 

extent management local; 

 

 

 

/*W?步:创徏数据表空?nbsp; */

 

create tablespace user_data 

 

logging 

 

datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'

 

size 50m 

 

autoextend on 

 

next 50m maxsize 20480m 

 

extent management local; 

 

 

 

/*W?步:创徏用户q指定表I间  */

 

create user username identified by password 

 

default tablespace user_data 

 

temporary tablespace user_temp; 

 

 

 

/*W?步:l用h予权?nbsp; */

 

grant connect,resource,dba to username; 



redcoatjk 2014-03-03 15:48 发表评论
]]>
[转]MySQLq行状态show status中文详解http://www.tkk7.com/redcoatjk/archive/2012/09/05/387100.htmlredcoatjkredcoatjkWed, 05 Sep 2012 07:33:00 GMThttp://www.tkk7.com/redcoatjk/archive/2012/09/05/387100.htmlhttp://www.tkk7.com/redcoatjk/comments/387100.htmlhttp://www.tkk7.com/redcoatjk/archive/2012/09/05/387100.html#Feedback1http://www.tkk7.com/redcoatjk/comments/commentRss/387100.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/387100.html阅读全文

redcoatjk 2012-09-05 15:33 发表评论
]]>
[转]Statement和PreparedStatement扚w更新http://www.tkk7.com/redcoatjk/archive/2012/07/20/383599.htmlredcoatjkredcoatjkFri, 20 Jul 2012 07:04:00 GMThttp://www.tkk7.com/redcoatjk/archive/2012/07/20/383599.htmlhttp://www.tkk7.com/redcoatjk/comments/383599.htmlhttp://www.tkk7.com/redcoatjk/archive/2012/07/20/383599.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/383599.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/383599.html阅读全文

redcoatjk 2012-07-20 15:04 发表评论
]]>
[转]JDBC中Statement与PreparedStatement的区?/title><link>http://www.tkk7.com/redcoatjk/archive/2012/07/20/383583.html</link><dc:creator>redcoatjk</dc:creator><author>redcoatjk</author><pubDate>Fri, 20 Jul 2012 03:14:00 GMT</pubDate><guid>http://www.tkk7.com/redcoatjk/archive/2012/07/20/383583.html</guid><wfw:comment>http://www.tkk7.com/redcoatjk/comments/383583.html</wfw:comment><comments>http://www.tkk7.com/redcoatjk/archive/2012/07/20/383583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/redcoatjk/comments/commentRss/383583.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/redcoatjk/services/trackbacks/383583.html</trackback:ping><description><![CDATA[<div>摘自 <a >http://neoremind.net/2010/12/preparedstatement_diff/</a><br /><br /> <h1 class="post-title">JDBC中Statement与PreparedStatement的区?/h1> <p><strong style="font-size: 14pt">1.</strong> statement每次执行sql语句Q相x据库都要执行sql语句的编译;preparedstatement?span style="color: #ff0000"><strong>预编?/strong></span>? 采用<strong><span style="color: #ff0000">Cache</span></strong>机制Q预~译语句Q放在Cache中,下次执行相同SQL语句Ӟ则可以直接从Cache中取出来Q有利于sql生成<span style="color: #ff0000"><strong>查询计划</strong></span>。)Q对于批量处理可以大大提高效? 也叫JDBC存储q程?/p> <p><span style="font-size: 14pt">例如Q如果要执行两条sql语句</span></p> <div style="padding-bottom: 0px" class="wp_syntax"> <div id="mue2ycc" class="code"><pre style="font-family: monospace" class="sql"><span style="color: #993333; font-size: 14pt; font-weight: bold">SELECT</span><span style="font-size: 14pt"> colume </span><span style="color: #993333; font-size: 14pt; font-weight: bold">FROM</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">TABLE</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">WHERE</span><span style="font-size: 14pt"> colume</span><span style="color: #66cc66; font-size: 14pt">=</span><span style="color: #cc66cc; font-size: 14pt">1</span><span style="font-size: 14pt">; </span><span style="color: #993333; font-size: 14pt; font-weight: bold">SELECT</span><span style="font-size: 14pt"> colume </span><span style="color: #993333; font-size: 14pt; font-weight: bold">FROM</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">TABLE</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">WHERE</span><span style="font-size: 14pt"> colume</span><span style="color: #66cc66; font-size: 14pt">=</span><span style="color: #cc66cc; font-size: 14pt">2</span><span style="font-size: 14pt">;</span></pre></div></div> <p><span style="font-size: 14pt">会生成两个执行计?/span></p> <p><span style="font-size: 14pt">一千个查询q成一千个执行计划Q?/span></p> <p><span style="font-size: 14pt">PreparedStatement用于使用l定变量重用执行计划</span></p> <div style="padding-bottom: 0px" class="wp_syntax"> <div id="6ymycm4" class="code"><pre style="font-family: monospace" class="sql"><span style="color: #993333; font-size: 14pt; font-weight: bold">SELECT</span><span style="font-size: 14pt"> colume </span><span style="color: #993333; font-size: 14pt; font-weight: bold">FROM</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">TABLE</span> <span style="color: #993333; font-size: 14pt; font-weight: bold">WHERE</span><span style="font-size: 14pt"> colume</span><span style="color: #66cc66; font-size: 14pt">=</span><span style="font-size: 14pt">:x;</span></pre></div></div> <p><span style="font-size: 14pt">通过set不同数据只需要生成一ơ执行计划,可以重用</span></p> <p><span style="font-size: 14pt">是否使用l定变量对系l媄响非常大Q生成执行计划极为消耗资?/span></p> <p><span style="font-size: 14pt">两种实现 速度差距可能成百上千?/span></p> <p><span style="font-size: 14pt">后者用了PreparedStatement对象Q而前者是普通的Statement对象。PreparedStatement对象不仅包含了SQL语句Q而且大多数情况下q个语句已经被预~译q,因而当其执行时Q只需DBMSq行SQL语句Q而不必先~译。当你需要执行Statement对象多次的时候,PreparedStatement对象会大大降低q行旉Q当然也</span><span style="color: #ff0000; font-size: 14pt"><strong>加快了访问数据库的速度</strong></span><span style="font-size: 14pt">?/span></p> <p><span style="font-size: 14pt">q种转换也给你带来很大的便利Q不必重复SQL语句的句法,而只需更改其中变量的|便可重新执行SQL语句。选择PreparedStatement对象与否Q在于相同句法的SQL语句是否执行了多ơ,而且两次之间的差别仅仅是变量的不同?/span><span style="font-size: 14pt; text-decoration: underline">如果仅仅执行了一ơ的话,在对数据库只执行一ơ性存取的时侯Q用 Statement 对象q行处理QPreparedStatement 对象的开销比Statement大,对于一ơ性操作ƈ不会带来额外的好处?/span></p> <p><strong style="font-size: 14pt">2. </strong>PrepareStatement中执行的SQL语句中是可以<strong><span style="color: #ff0000">带参?/span></strong>的,也就是说可以替换变量Q尽量采用?span style="color: #ff0000"><strong>Q号</strong></span>的方式传递参敎ͼ增加代码的可L又可以预编译加速;而Statement则不可以?/p> <p><strong style="font-size: 14pt">3.</strong> <span style="color: #ff0000"><strong>防止SQL注入</strong></span>。在SQL中包含特D字W或SQL的关键字(如:’ or 1 or ‘)ӞStatement出C可预料的l果Q出现异常或查询的结果不正确Q,可用PreparedStatement来解冟?/p> <div class="2c2g2s4" id="_mcePaste"><span style="font-size: 14pt">SQL注入或者说SQL注入d是利用Statement的漏z完成的Q例如用个用L录,那么form表单有用户名和密?/span></div> <div class="cowguku" id="_mcePaste"><span style="font-size: 14pt">那么我提交时Q在用户名输入框?输入 “aaa’ or ’a’=’a” 密码框随便输入,那么q样意味着 sql?/span></div> <div class="a24mq4s" id="_mcePaste"><span style="font-size: 14pt">查询语言是 “select * from ?where 用户?’aaa’ or ’a’=’a’ and 密码=’123’  ”Q这h询出来所有的数据或者是混ؕ。那么不被授权的用户照样可以dQ岂不是被黑了?Q实际中现在javaE序员早都不用这U方式写查询了,一般都用PreparedStatement来查询,或干脆就用hibernate之类的持久层框架Q这样通过sql注入无从谈起了?/span></div></div><img src ="http://www.tkk7.com/redcoatjk/aggbug/383583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/redcoatjk/" target="_blank">redcoatjk</a> 2012-07-20 11:14 <a href="http://www.tkk7.com/redcoatjk/archive/2012/07/20/383583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]如何修改mysql root密码 http://www.tkk7.com/redcoatjk/archive/2012/07/19/383487.htmlredcoatjkredcoatjkThu, 19 Jul 2012 02:54:00 GMThttp://www.tkk7.com/redcoatjk/archive/2012/07/19/383487.htmlhttp://www.tkk7.com/redcoatjk/comments/383487.htmlhttp://www.tkk7.com/redcoatjk/archive/2012/07/19/383487.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/383487.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/383487.html摘自:http://ryxxlong.iteye.com/blog/552884

如何修改mysql root密码
  忘记MySQL ROOT密码是在MySQ使用中很常见的问题,可是有很多朋友ƈ不会重置ROOT密码Q那叫苦啊,特写此文章与大家交流Q?/span>

1、编辑MySQL的配|文Ӟmy.ini
一般在MySQL安装目录下有my.ini即MySQL的配|文件?/span>
在此配置文g的最后添加如下一行:
skip-grant-tables
保存退出编辑?/span>

2、然后重启MySQL服务
在命令行下执行:
net stop MySQL
net start MySQL

3、设|新的ROOT密码
然后用命令提C符cd到对应安装目录的bin?/span>执行Q?/span>
MySQL -u root -p MySQL或mysql -u root -p
直接回R无需密码卛_q入数据库了?/span>
此时,在命令行下执?use mysql;
现在我们执行如下语句把root密码更新为:
update user set password=PASSWORD("root") where user='root';
(注意:此时不用使用mysqladmin -u root -p password '你的新密?q条命o修改密码,因ؓ'skip-grant-tables'配置,
不信的话,你可以试用一?它肯定会报如下所C的错误:
F:\Documents and Settings\long>mysqladmin -u root -p password 'root'
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use 'password' command as mysqld runs
 with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead)
exit 退出MySQL?/span>

4、还原配|文件ƈ重启服务

然后修改MySQL配置文g把刚才添加的那一?skip-grant-tables'删除?/span>
再次重vMySQL服务Q密码修改完毕?/span>
用新密码root试一下吧Q又能登入重新进入mysql了?



附mysql修改密码的一些方?
1. 用MYSQL的grant语句Q例?/span>
mysql -h hostname –u root 命od到mysqld server 用grant 命o改变口o:
mysql -h 192.168.1.101 -u root
上边?92.168.1.101 是偶的mysqld q行机器Q你换成自己的,q样d上去Q就可以修改密码?
其实没必要这么麻?直接mysql -u root可以了?
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION

2. mysqladmin -u 用户?-p 旧密?password 新密?
?Q给root 加个密码root。首先进入cmd中,然后键入
以下命o,至于在CMD下能否用mysqladminQ?/span>
p看你的Windows环境变量PATH中是否添?#8220;E:\Program Files\MySQL\MySQL Server 5.1\bin;”Q请改ؓ你自q安装路径Q了?
mysqladmin -u root password root
注:因ؓ开始时root 没有密码Q所?p 旧密码一就可以省略了?/span>
?Q再root 的密码改为admin?
mysqladmin –u root -proot password admin(注意-p 不要和后面的密码?
开写,要写在一?不然会出?错误如下所C?
F:\Documents and Settings\long>mysqladmin -u root -p root password admin
Enter password: ****
mysqladmin: Unknown command: 'root')
当然你也可以q样?mysqladmin –u root -p password admin回R,
然后再输入你的旧密码,q样也是完全也可以的,看你的爱好了.
?:再将root用户的密码去?
F:\Documents and Settings\long>mysqladmin -u root -p password  ;
Enter password: root
此时,root用户又没有密码了.可以通过下面的方法设|?
F:\Documents and Settings\long>mysql -u root
mysql>set password for 'root'@'localhost'=password('root');(语法:SET PASSWORD FOR '用户?@'L' = PASSWORD('密码'))
mysql>set password for 'root'@'%'=password('root');
//本条可?q是在配|mysql数据?如果你选择了允许root通过q程dq来?你在mysql数据库下的user表中,
use mysql;
select * from user;可以看到有两条记?如果你没有配|这一的?只会W一条记?
Host                    User     Password
'localhost', 'root', '*9C9F4927129ECC3209D8550DC8B67156FDBF9418', ...
'%', 'root', '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', ...
通过以上讄,root的密码将变ؓrootq样完成了根用户root密码的设|工作?/span>

3. use mysql;
 update user set password =password('yourpass') where user='root'

(?下面的这些方法我本h没有试过,不知对不?我只是{载了一?)
下面的方法都在mysql提示W下使用Q且必须有mysql的root权限Q?
Ҏ(gu)4
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
切地说q是在增加一个用P用户名ؓjeffreyQ密码ؓbiscuit?
在《mysql中文参考手册》里有这个例子,所以我也就写出来了?
注意要用PASSWORD函数Q然后还要用FLUSH PRIVILEGES?

Ҏ(gu)5
和方法三一P只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES

Ҏ(gu)6
使用SET PASSWORD语句Q?
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
你也必须使用PASSWORD()函数Q?
但是不需要用FLUSH PRIVILEGES?


Ҏ(gu)7
使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
q里PASSWORD()函数是不必要的,也不需要用FLUSH PRIVILEGES?/span>

?mysql 新设|用h更改密码后需用flush privilegeshMySQL的系l权限相兌Q?/span>
否则会出现拒l访问,q有一U方法,是重新启动mysql服务器,来新设|生效?/span>



redcoatjk 2012-07-19 10:54 发表评论
]]>
[转]JDNI入门http://www.tkk7.com/redcoatjk/archive/2012/02/14/369917.htmlredcoatjkredcoatjkTue, 14 Feb 2012 02:24:00 GMThttp://www.tkk7.com/redcoatjk/archive/2012/02/14/369917.htmlhttp://www.tkk7.com/redcoatjk/comments/369917.htmlhttp://www.tkk7.com/redcoatjk/archive/2012/02/14/369917.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/369917.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/369917.html那么QJNDI到底起什么作用?

要了解JNDI的作用,我们可以?#8220;如果不用JNDI我们怎样做?用了JNDI后我们又怎样做?”q个问题来探讨?

没有JNDI的做法:
E序员开发时Q知道要开发访问MySQL数据库的应用Q于是将一个对 MySQL JDBC 驱动E序cȝ引用q行了编码,q过使用适当?JDBC URL q接到数据库?
像以下代码q样Q?

Connection conn=null;
try {Class.forName("com.mysql.jdbc.Driver",true, Thread.currentThread().getContextClassLoader());
conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=qingfeng&password=mingyue");
/* 使用connq进行SQL操作 */......
conn.close();
}
catch(Exception e)
{e.printStackTrace();}
finally {if(conn!=null)
{try {conn.close();}
catch(SQLException e) {
}}}

q是传统的做法,也是以前非JavaE序员(如Delphi、VB{)常见的做法。这U做法一般在规模的开发过E中不会产生问题Q只要程序员熟?zhn)Java语言、了解JDBC技术和MySQLQ可以很快开发出相应的应用程序?

没有JNDI的做法存在的问题Q?
1、数据库服务器名UMyDBServer 、用户名和口令都可能需要改变,由此引发JDBC URL需要修改;
2、数据库可能改用别的产品Q如改用DB2或者OracleQ引发JDBC驱动E序包和cd需要修改;
3、随着实际使用l端的增加,原配|的q接池参数可能需要调_
4?.....

解决办法Q?
E序员应该不需要关?#8220;具体的数据库后台是什么?JDBC驱动E序是什么?JDBC URL格式是什么?讉K数据库的用户名和口o是什么?”{等q些问题Q程序员~写的程序应该没有对 JDBC 驱动E序的引用,没有服务器名Uͼ没有用户名称或口?—— 甚至没有数据库池或连接管理。而是把这些问题交lJ2EE容器来配|和理Q程序员只需要对q些配置和管理进行引用即可?

由此Q就有了JNDI?

用了JNDI之后的做法:
首先Q在在J2EE容器中配|JNDI参数Q定义一个数据源Q也是JDBC引用参数Q给q个数据源设|一个名Uͼ然后Q在E序中,通过数据源名U引用数据源从而访问后台数据库?
具体操作如下Q以JBossZQ:
1、配|数据源
在JBoss?D:\jboss420GA\docs\examples\jca 文g夹下面,有很多不同数据库引用的数据源定义模板。将其中?mysql-ds.xml 文gCopyC使用的服务器下,?D:\jboss420GA\server\default\deploy?
修改 mysql-ds.xml 文g的内容,使之能通过JDBC正确讉K你的MySQL数据库,如下Q?
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/lw</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>rootpassword</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>
</datasources>

q里Q定义了一个名为MySqlDS的数据源Q其参数包括JDBC的URLQ驱动类名,用户名及密码{?

2、在E序中引用数据源Q?

Connection conn=null;
try
{
Context ctx=new InitialContext();
Object datasourceRef=ctx.lookup("java:MySqlDS");
//引用数据?
DataSource ds=(Datasource)datasourceRef;
conn=ds.getConnection();
/* 使用connq行数据库SQL操作 */......
c.close();
}
catch(Exception e)
{e.printStackTrace();}
finally {if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
}}}
直接使用JDBC或者通过JNDI引用数据源的~程代码量相差无几,但是现在的程序可以不用关心具体JDBC参数了?
在系l部|后Q如果数据库的相兛_数变_只需要重新配|?mysql-ds.xml 修改其中的JDBC参数Q只要保证数据源的名UC变,那么E序源代码就无需修改?

由此可见QJNDI避免了程序与数据库之间的紧耦合Q应用更加易于配置、易于部|Ӏ?

JNDI的扩展:
JNDI在满了数据源配|的要求的基上,q进一步扩充了作用Q所有与pȝ外部的资源的引用Q都可以通过JNDI定义和引用?

所以,在J2EE规范中,J2EE 中的资源q不局限于 JDBC 数据源。引用的cd有很多,其中包括资源引用Q已l讨Q、环境实体和 EJB 引用。特别是 EJB 引用Q它暴露?JNDI ?J2EE 中的另外一关键角Ԍ查找其他应用E序lg?

EJB ?JNDI 引用非常cM?JDBC 资源的引用。在服务于转换的环境中Q这是一U很有效的方法。可以对应用E序架构中所得到的所有组件进行这c配|管理,?EJB lg?JMS 队列和主题,再到单配|字W串或其他对象,q可以降低随旉的推UL务变更所产生的维护成本,同时q可以简化部|Ԍ减少集成工作?外部资源”?


ȝQ?
J2EE 规范要求所?J2EE 容器都要提供 JNDI 规范的实现。JNDI ?J2EE 中的角色是“交换?#8221; —— J2EE lg在运行时间接地查扑օ他组件、资源或服务的通用机制。在多数情况下,提供 JNDI 供应者的容器可以充当有限的数据存储,q样理员就可以讄应用E序的执行属性,q让其他应用E序引用q些属性(Java 理扩展QJava Management ExtensionsQJMXQ也可以用作q个目的Q。JNDI ?J2EE 应用E序中的主要角色是提供间接层,q样lg可以发现所需要的资源Q而不用了解这些间接性?

?J2EE 中,JNDI 是把 J2EE 应用E序合在一L_合剂,JNDI 提供的间接寻址允许跨企业交付可伸羃的、功能强大且很灵zȝ应用E序。这?J2EE 的承诺,而且l过一些计划和预先考虑Q这个承诺是完全可以实现的?img src ="http://www.tkk7.com/redcoatjk/aggbug/369917.html" width = "1" height = "1" />

redcoatjk 2012-02-14 10:24 发表评论
]]>
rownum的用?http://www.tkk7.com/redcoatjk/archive/2011/11/17/364109.htmlredcoatjkredcoatjkThu, 17 Nov 2011 08:46:00 GMThttp://www.tkk7.com/redcoatjk/archive/2011/11/17/364109.htmlhttp://www.tkk7.com/redcoatjk/comments/364109.htmlhttp://www.tkk7.com/redcoatjk/archive/2011/11/17/364109.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/364109.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/364109.html在Oracle中,要按特定条g查询前N条记录,用个rownum搞定了?
select * from emp where rownum <= 5
l果只查?条记? oracle会自动展C个rownum的属性表C录排序号

而select * from emp where rownum > 5 ;则是p|的?br />因ؓ:rownum是oracle预处理字D,默认标序?Q只有记录集已经满条g后才会进行后l编受由于第一条记录rownum默认?Q而你的条件是rownum>=6 对第一条记录比较它的rownum肯定不大? 所以不满条g oracle舍弃W一条记录将数据库第二条记录标序?再进行比?nbsp; 肯定都不满rownum>=6  q样循环也就是说׃没有记录满rownum>=6所以记录一直被舍弃Qrownum一直是1 ?

解决Ҏ(gu): 利用查询?自动生成的rownum属?
排序Ҏ(gu)Q?
  select * from (
       select a1.*, rownum rwn  from emp a1   where rownum <=10
    ) where rwn >= 6;
  或?
  select * from (
    select qx.*,row_number() over(order by qx.empno) rwn from emp qx
  ) where rwn between 6 and 10
-------------------------------------------------------------------------
使用注意:

1排序D数据重复:


table1中表有字D(其余字段省)
ID  主键
DATA_UPDATE_TIME 数据更新旉Q只存储了年月日Q?

分页查询的语句如?
select *
   from (
        select row_.*, rownum rownum_
           from ( select  p.id from table1 p
             order by  p.DATA_UPDATE_TIME desc )
   row_ where rownum <= )
where rownum_ >

以每|C1Q条Z
W一ơ  rownum <= 10)   where rownum_ > 0
W二ơ  rownum <= 20)   where rownum_ > 10

发现有一条记录在两次查询l果中重复出玎ͼ不知道问题出在哪里,请忙帮看看?

另:
DATA_UPDATE_TIME 的值有重复Q不知道跟它有没有关pR?
如果按ID排的话就不会出现q个问题


解答:
如果order by 不能唯一定记录的顺序就会出现这个问题?
解决的方法是把分部分全部拿到最外层q行?

Java代码 复制代码 收藏代码
  1. select * from (    
  2.   select row_.*, rownum rownum_    
  3.   from (   
  4.     select p.id from table1 p    
  5.     order by p.DATA_UPDATE_TIME desc    
  6.   ) row_   
  7. )    
  8. where rownum_ > ? and rownum_ <= ?   

2 排序的id序:
Oracle中的rownum的是在取数据的时候生的序号Q所以想Ҏ(gu)定排序的数据L定的rowmun行数据就必须注意了?br />SQL> select rownum ,id,name from student order by name;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         2 200002 王二
         1 200001 张一
         4 200004 赵四
可以看出Qrownumq不是按照name列来生成的序受系l是按照记录插入时的序l记录排的号Qrowid也是序分配的。ؓ了解册个问题,必须使用子查?br />SQL> select rownum ,id,name from (select * from student order by name);
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         1 200003 李三
         2 200002 王二
         3 200001 张一
         4 200004 赵四
q样成了按name排序Qƈ且用rownum标出正确序号Q有到大)


------------
参?a >Oracle的rownum原理和?/font>  http://tenn.iteye.com/blog/99339

在Oracle中,要按特定条g查询前N条记录,用个rownum搞定了?
select * from emp where rownum <= 5
而且书上也告诫,不能对rownum?>"Q这也就意味着Q如果你想用
select * from emp where rownum > 5
则是p|的。要知道Z么会p|Q则需要了解rownum背后的机Ӟ
1 Oracle executes your query.

2 Oracle fetches the first row and calls it row number 1.

3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row.

4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).

5 Go to step 3.

了解了原理,q道rownum>不会成功Q因为在W三步的时候查询出的行已经被丢弃,W四步查出来的rownum仍然?,q样永远也不会成功?/p>

同样道理Qrownum如果单独?,也只有在rownum=1时才有用?

 

对于rownum来说它是oraclepȝ序分配Z查询q回的行的编Pq回的第一行分配的?Q第二行?Q依此类推,q个伪字D可以用于限制查询返回的总行敎ͼ而且rownum不能以Q何表的名UC为前~?br /> 举例说明Q?br />例如表:student(学生)表,表结构ؓQ?br />ID       char(6)      --学号
name    VARCHAR2(10)   --姓名
create table student (ID char(6), name VARCHAR2(100));
insert into sale values('200001',‘张一’);
insert into sale values('200002',‘王二’);
insert into sale values('200003',‘李三’);
insert into sale values('200004',‘赵四’);
commit;
(1) rownum 对于{于某值的查询条g
如果希望扑ֈ学生表中W一条学生的信息Q可以用rownum=1作ؓ条g。但是想扑ֈ学生表中W二条学生的信息Q用rownum=2l果查不到数据。因为rownum都是?开始,但是1以上的自然数在rownum做等于判断是时认为都是false条gQ所以无法查到rownum = nQn>1的自然数Q?br />SQL> select rownum,id,name from student where rownum=1;Q可以用在限制返回记录条数的地方Q保证不出错Q如Q隐式游标)
SQL> select rownum,id,name from student where rownum=1;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         1 200001 张一
SQL> select rownum,id,name from student where rownum =2;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
Q?Qrownum对于大于某值的查询条g
   如果xCW二行记录以后的记录Q当使用rownum>2是查不出记录的,原因是由于rownum是一个L?开始的伪列QOracle 认ؓrownum> n(n>1的自然数)q种条g依旧不成立,所以查不到记录
SQL> select rownum,id,name from student where rownum >2;
ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
那如何才能找到第二行以后的记录呀。可以用以下的子查询方法来解决。注意子查询中的rownum必须要有别名Q否则还是不会查录来Q这是因为rownum不是某个表的列,如果不v别名的话Q无法知道rownum是子查询的列q是L询的列?br />SQL>select * from(select rownum no ,id,name from student) where no>2;
        NO ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         4 200004 赵四
SQL> select * from(select rownum,id,name from student)where rownum>2;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
Q?Qrownum对于于某值的查询条g
如果x到第三条记录以前的记录,当用rownum<3是能得到两条记录的。显然rownum对于rownum<nQ?n>1的自然数Q的条g认ؓ是成立的Q所以可以找到记录?br />SQL> select rownum,id,name from student where rownum <3;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
1 200001 张一
        2 200002 王二
lg几种情况Q可能有时候需要查询rownum在某区间的数据,那怎么办呀从上可以看出rownum对小于某值的查询条g是h为true的,rownum对于大于某值的查询条g直接认ؓ是false的,但是可以间接的让它{为是true的。那必M用子查询。例如要查询rownum在第二行到第三行之间的数据,包括W二行和W三行数据,那么我们只能写以下语句,先让它返回小于等于三的记录行Q然后在L询中判断新的rownum的别名列大于{于二的记录行。但是这L操作会在大数据集中媄响速度?br />SQL> select * from (select rownum no,id,name from student where rownum<=3 ) where no >=2;
        NO ID     NAME
---------- ------ ---------------------------------------------------
         2 200002 王二
         3 200003 李三
Q?Qrownum和排?br />Oracle中的rownum的是在取数据的时候生的序号Q所以想Ҏ(gu)定排序的数据L定的rowmun行数据就必须注意了?br />SQL> select rownum ,id,name from student order by name;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         2 200002 王二
         1 200001 张一
         4 200004 赵四
可以看出Qrownumq不是按照name列来生成的序受系l是按照记录插入时的序l记录排的号Qrowid也是序分配的。ؓ了解册个问题,必须使用子查?br />SQL> select rownum ,id,name from (select * from student order by name);
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         1 200003 李三
         2 200002 王二
         3 200001 张一
         4 200004 赵四
q样成了按name排序Qƈ且用rownum标出正确序号Q有到大)



redcoatjk 2011-11-17 16:46 发表评论
]]>
[转]oracle密码Ҏ(gu)字符在imp、exp里的使用http://www.tkk7.com/redcoatjk/archive/2011/10/19/361590.htmlredcoatjkredcoatjkWed, 19 Oct 2011 09:03:00 GMThttp://www.tkk7.com/redcoatjk/archive/2011/10/19/361590.htmlhttp://www.tkk7.com/redcoatjk/comments/361590.htmlhttp://www.tkk7.com/redcoatjk/archive/2011/10/19/361590.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/361590.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/361590.htmlhttp://space.itpub.net/9252210/viewspace-594453
今天在做数据导出的时候,׃用户名的密码使用的是Ҏ(gu)字符Q所以遇C错误代码Q?#8220;EXP-00056: 遇到 ORACLE 错误 12154”Q网上查扑֎因,需要用引号扩v来,但是os不同Q方式也不同:

    windows os: exp username/"""password"""@devdb --3个双引号扩密?/p>

    linux/unix os: exp 'username/"password"@devdb' --1个双引号扩密码,1个单引号扩全?/p>

    实验l果如下Q?br />1.创徏带有Ҏ(gu)字符密码的用?/strong>
C:\Documents and Settings\Home>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期?5?7 17:37:36 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> connsys/oracle@devdbas sysdba
已连接?br />SQL> create user exp identified by "12345!@#$%";
用户已创建?br />SQL> grant connect, resource to exp;
授权成功?br />SQL> conn exp/"12345!@#$%"@devdb2
已连接?br />SQL> create table table1 as select * from dual;
表已创徏?br />SQL> exit
2.windows os导出
C:\Documents and Settings\Home>expexp/12345!@#$%@devdbfile=c:\exp.dmp wner=exp
Export: Release 9.2.0.1.0 - Production on 星期?5?7 17:39:42 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
EXP-00056: 遇到 ORACLE 错误 12154
ORA-12154: TNS: 无法处理服务?br />EXP-00000: 导出l止p|
C:\Documents and Settings\Home>exp exp/"12345!@#$%"@devdb2file=c:\exp.dmp wner=exp
Export: Release 9.2.0.1.0 - Production on 星期?5?7 17:39:57 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
EXP-00056: 遇到 ORACLE 错误 12154
ORA-12154: TNS: 无法处理服务?br />EXP-00000: 导出l止p|
C:\Documents and Settings\Home>exp exp/"""12345!@#$%"""@devdb2file=c:\exp.dmp wner=exp
Export: Release 9.2.0.1.0 - Production on 星期?5?7 17:41:54 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
q接? Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
已导?ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符?br />. 正在导出 pre-schema q程对象和操?br />. 正在导出用户 EXP 的外部函数库名称
. 导出 PUBLIC cd同义?br />. 导出U有cd同义?br />. 正在导出用户 EXP 的对象类型定?br />卛_导出 EXP 的对?...
. 正在导出数据?/strong>链接
. 正在导出序号
. 正在导出集定义
. 卛_导出 EXP 的表通过常规路径 ...
. . 正在导出?nbsp;                         TABLE1          1 行被导出
. 正在导出同义?br />. 正在导出视图
. 正在导出存储的过E?br />. 正在导出q算W?br />. 正在导出引用完整性约束条?br />. 正在导出触发?br />. 正在导出索引cd
. 正在导出位图, 功能性烦引和可扩展烦?br />. 正在导出后期表活?br />. 正在导出实体化视?br />. 正在导出快照日志
. 正在导出作业队列
. 正在导出hl和子组
. 正在导出l?br />. 正在导出 post-schema q程对象和操?br />. 正在导出l计
在没有警告的情况下成功终止导出?/p>

3.linux/unix os导出试
[oracle@rac2 ~]$ expexp/12345!@#$%@devdbfile=./exp.dmp wner=exp
-bash:!@#$%@devdb: event not found
[oracle@rac2 ~]$ exp exp/"""12345!@#$%"""@devdbfile=./exp.dmp wner=exp
-bash:!@#$%"""@devdb: event not found
[oracle@rac2 ~]$exp 'exp/"12345!@#$%"@devdb'file=./exp.dmp wner=exp 
Export: Release 10.2.0.4.0 - Production on Thu May 7 19:21:32 2009 
Copyright (c) 1982, 2007, Oracle.  All rights reserved. 
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses ZHS16GBK character set (possible charset conversion)
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user EXP
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user EXP
About to export EXP's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export EXP's tables via Conventional Path ...
. . exporting table                         TABLE1          1 rows exported
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.



redcoatjk 2011-10-19 17:03 发表评论
]]>
转置http://www.tkk7.com/redcoatjk/archive/2011/08/25/357294.htmlredcoatjkredcoatjkThu, 25 Aug 2011 09:12:00 GMThttp://www.tkk7.com/redcoatjk/archive/2011/08/25/357294.htmlhttp://www.tkk7.com/redcoatjk/comments/357294.htmlhttp://www.tkk7.com/redcoatjk/archive/2011/08/25/357294.html#Feedback0http://www.tkk7.com/redcoatjk/comments/commentRss/357294.htmlhttp://www.tkk7.com/redcoatjk/services/trackbacks/357294.html

关于group by 的应用问?nbsp; 

数据库内容ؓ下面


 

写一SQL得出下面内容Q?/p>


 

贴出SQLl果如下Q?MySQL版本)

create table gosin_temp(rq varchar(10),shengfu nchar(1));

insert into gosin_temp values('2009-05-09','?);
insert into gosin_temp values('2009-05-09','?);
insert into gosin_temp values('2009-05-09','?);
insert into gosin_temp values('2009-05-09','?);
insert into gosin_temp values('2009-05-10','?);
insert into gosin_temp values('2009-05-10','?);
insert into gosin_temp values('2009-05-10','?);

select * from gosin_temp;

得到l果的SQLQ?br /> select a1.rq,a1.?b1.?from
(select a.rq, count(a.shengfu) ?from gosin_temp a where a.shengfu='? group by a.rq) a1,
(select b.rq, count(b.shengfu) ?from gosin_temp b where b.shengfu='? group by b.rq) b1
where a1.rq = b1.rq

cM的题目还有很多,如:

   ??br /> 1 a b
2 b a
3 b a

要求写一SQL语句Q输出如下结果:
   ??br /> a 1 2
b 2 1

其实都一?只要熟?zhn)使用group by ׃觉得难了?/p>



redcoatjk 2011-08-25 17:12 发表评论
]]>
վ֩ģ壺 þþƷ99Ʒ| avƬ߹ۿ| ޳վ| ҹþþƷ| ޹ƷVA߿ | ߹ۿ| ߾Ʒۿѹۿ| ޾ƷƬ߹ۿ| ѿһһƬ| ղƷϵ| ѹۿ߽Ƭ| AVר޾Ʒ| Ѱββ8X| ޾Ʒ˳| һëƬ߲Ƶ| þþþav| 91Ƶַ| ŷ ͼƬۺ| Ʒѹۿþþ | ޾Ʒ˽Ĺ| Ʒѹۿ| Ůaþþ91| ëƬaëƬѲ| ۺһۺͼ| ŷպþAV| aëƬͼƬ| ۺƵ߹ۿ| Ƶ| 㽶Ƶ| þþƷAVվ| ޾ƷƵ| ޹Ʒlv| þþƷ޾Ʒ| jizzjizz߲| ޹AVһ | AVˬҹҹ| 9420ѸƵ| ޾Ʒٸ30P| ͵޾Ʒ׺ˬ| ؼëƬƵ| ҹһ|