[b]SQLServer数据库JDBC连接技术[/b] 

JAVA中数据源和连接池方式DataSoure<数据源> 

JDBC2.0提供了javax.sql.DataSource接口。负责数据库连接池建立连接 

DataSource中预先建立了多个数据库连接,当程序访问时,由连接池中抽出空的连接。DataSource对象由容器(Tomcat)提供。 

 Tomcat 5.0x版本 

 Tomcat\comon\lib目录下放置数据库连接jar包。 

 Server.xml文件中 

 <Context path="/test" docBase="f:\testweb\" 

 debug="5" reloadable="true" crossContext="true"> 


 <Logger className="org.apache.catalina.logger.FileLogger" 

 prefix="localhost_MysqlTest_log." suffix=".txt" 

 timestamp="true"/> 


 <Resource name="名字" auth="Container" type="javax.sql.DataSource"/> 

 <ResourceParams name="名字"> 

 <parameter> 

 <name>factory</name> 

 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 

 </parameter> 

 <parameter> 

 <name>maxActive</name> 设置最大活动连接数0表示不受限制 

 <value>100</value> 

 </parameter> 

 <parameter> 

 <name>maxIdle</name> 设置最大空闲连接数0表示不受限制 

 <value>30</value> 

 </parameter> 

 <parameter> 

 <name>maxWait</name> 设置空闲时的等待时间 

 <value>5000</value> 

 </parameter> 

 <parameter> 

 <name>username</name> 用户名 

 <value>用户名</value> 

 </parameter> 

 <parameter> 

 <name>password</name> 密码 

 <value>密码</value> 

 </parameter> 

 <parameter> 

 <name>driverClassName</name> 设置Diver 

 <value>驱动程序</value> 

 </parameter> 

 <parameter> 

 <name>url</name> 

 <value>连接地址</value> 设置URL 

 </parameter> 

 </ResourceParams> 

 </Context> 

 Web.xml中的配置对数据连接池的引用 

 页面显示 

 <%@ page import="java.sql.*"%> 

 <%@ page import="javax.sql.*"%> 

 <%@ page import="javax.naming.*"%> 

 <%! 

 final String JNDINAME = "java:comp/env/jdbc/mldn" ;//在weblogin中是不需要用的 

 %> 

 <% 

 Connection conn = null ; 

 try 

 { 

 // 初始化查找命名空间 

 Context ctx = new InitialContext() ; 

 // 找到DataSource 

 DataSource ds = (DataSource)ctx.lookup(JNDINAME) ; 

 conn = ds.getConnection() ; 

 } 

 catch(Exception e) 

 { 

 System.out.println(e) ; 

 } 

 %> 

 <%=conn%> 

 <% 

 // 将连接重新放回到池中 

 conn.close() ; 

 %> 








 [b]Tomcat 6.0x版本[/b] 

 MEAT—INF目录下Context.xml文件配置 

 <Context> 

 <Resource name="TestJNDI" type="javax.sql.DataSoure" auth="Container" 

 driverClassName=" com.microsoft.sqlserver.jdbc.SQLServerDriver " 

 url="jdbc:sqlserver://1433";DataName="DB" 

 usreName="sa"password="123" 

 maxActive="4" maxTdle="2" maxWait="60000" /> 

</Context>



[b]JDBC——ODBC桥连接(由微软提供的ODBC数据源来判断该如处理)[/b]
连接字符窜:

DRIVER=sun.jdbc.odbc.JdbcOdbcDriver; 

URU=jdbc:odbc:数据源名; 

JDBC纯java驱动连接(由数据库厂商提供) 

Sql2000 

DRIVER=com.microsofter.jdbc.sqlserver.SQLServerDriver 

URL=jdbc.microsofter.sqlserver://localhost:1433;DatabaseName=”” 


Sql2005 

DRIVER=com.microsofter.sqlserver.jdbc.SQLServerDrive 

URL= jdbc:sqlserver://localhost:1433;DatabaseName=”” 

MySql 

 DRIVER ="org.gjt.mm.myspl.Driver"; 

 URL ="jdbc:mysql://localhost:3306/数据库名 


Oracle 

 DRIVER ="oracle.jdbc.driver.OracleDriver"; 

 URL ="jdbc:oracle:thin:@localhost:1521:SID”




[b]Mysql数据库JDBC连接技术[/b]
启动数据库服务:
通过命令行
启动数据库 —— net start mysql
关闭数据库—— net stop mysql
用户名:root
密 码:123456
登陆 mysql –uroot –p123456
查看数据库(表) show databases(tables) ;
创建数据库 create database [数据库名] ;
删除数据库 dorp database [数据库名] ;
要使用的数据库(表) use 库(表)名;
创建一个数据库表 CREATE TABLE person

( 

 id varchar(23) not null primary key, 

 name varchar(20) not null, 

 password varchar(20) not null 

) 

显示表结构 descripe 表名称 ; 

导入.sql文件命令 source D:/mysql.sql 

查看服务器版本号和当前日期 select varsion(),current_date; 

 select varsion();select now(); 

其他的都是sql语句,写完之后要加上“;”号 

代码: 

<%@page contentType="text/html;charset=gb2312"%> 

<%@page import="java.spl.*"%> 

<% 

 final String DBDRIVER ="org.gjt.mm.myspl.Driver"; 

 final String DBURL ="jdbc:mysql://localhost/数据库名"; 

 final String DBUSER ="root"; 

 final String DBPASSWORD ="12345678"; 


 Connection conn=null; 

%> 

<% 

 try 

 { 

 Class.forName(DBDRIVER); 

 Conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); 

 Statement stmt =conn.createStatement(); 

 String sql ="CREATE TABLE person(name varchar(32))"; 

 //执行更新语句 

 stmt.executeUpdate(sql); 

 stmt.close(); 

 } 

 catch(Excuption e) 

 { 

 out.println(e);//开发中是不能用的 

 } 

%> 


[b]Oracle数据库JDBC连接技术[/b] 

Oracle_Home\jdbc目录中Reader.txt文件,里面有很多jdbc的重要信息,包括安装和指导。 

 Oracle_Home\jdbc\lib目录:包含有许多jar文件



添加到ClassPath工作环境中,(jar文件,使用的对应版本)
使用的是JDK1.6—— ojdbc6.jar;
使用的是JDK1.5—— ojdbc5.jar;
使用的是JDK1.4—— ojdbc14.jar;
使用的是JDK1.2—— classes12.jar;
要国家语言的支持——Oracle_Home\jlib\ orai18n.jar
JTA和JNDI的特性——Oracle_Home\jlib\ jta.jar..jndi.jar

[b]加载Oracle.jdbc驱动[/b]
第一种:Class.forName("oracle.jdbc.OracleDriver");
第二种:DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

URL:=” jdbc:oracle:thin:@localhost:SID”;

[b]Oracle驱动程序:[/b]
Thin驱动程序:占用内存最小,占用系统资源小。客户机上使用。
OCI驱动程序:占用系统资源大,但性能好。服务器上使用。

使用数据源连接:

oracle.jdbc.pool.OracleDataSource obj
=new oracle.jdbc.pool.OracleDataSource();
设置属性

obj.setServerName("localhost"); 

 obj.setDatabaseName("ACCP"); 

 obj.setDriverType("thin"); 

 obj.setPortNumber(1521); 

 obj.setUser("scott"); 

 obj.setPassword("tiger"); 

 //获得连接 

 Connection conn=obj.getConnection();



Oracle JDBC扩展包:
Oracle.sql: 包含支持所在Oracle数据型的类。
Oracle.jdbc:包含支持所用访问Oracle数据库接口的类。


[b]几条常见的数据库分页 SQL 语句[/b]
2007-11-07 10:57作者:ares出处:IT专家网责任编辑:幽灵
  作者根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句做了介绍……
  我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中数据量很大的话,一次检索所有的记录,会占用系统很大的资源,因此我们常常采用,需要多少数据就只从数据库中取多少条记录,即采用分页语句。根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:
  SQL Server
  从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:
  SELECT *   FROM ( SELECT Top N *   FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2   Order by 主键 asc
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
  SELECT *   FROM ( SELECT TOP 20 *   FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2   Order by sys_id asc
  Oralce数据库
  从数据库表中第M条记录开始检索N条记录
  SELECT *   FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2   where t2.r >= M
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
  SELECT *   FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2   Where t2.R >= 10
  MySQL数据库
  My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:
以下是引用片段:  SELECT * FROM 表名称 LIMIT M,N
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
以下是引用片段:  select * from sys_option limit 10,20