在java编程中,对数据库连接生命周期的管理有两种形式.
1 手动管理方式:数据库连接的生命周期,都由程序员手动开启和关闭.
2 连接池管理方式: 数据库的生命周期,交由第三方类包来管理.例如hibernate.在hibernate的配置文件中,也可以支持下面的三种方式.
数据库连接的取得,可以通过以下三种方式:
1 将数据库连接的信息,直接写在代码当中.
class.forName("com.microsoft.jdbc.sqlServer.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs","sa","sa");
数据库的驱动和url user password依据实际情况而定.
2 通过上下文的形式,将数据库连接放在服务器当中.通过上下文的形式来获得.以jndi的形式来获得.
首先:在配置文件中定义:
<resource-ref>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
(---------JDBC 数据源引用在java:comp/env/jdbc 子上下文中声明
---------JMS 连接工厂在java:comp/env/jms 子上下文中声明
---------JavaMail 连接工厂在java:comp/env/mail 子上下文中声明
---------URL 连接工厂在 java:comp/env/url子上下文中声明
)
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/adam_web");
conn = ds.getConnection();
上述代码,需要导入:
import java.sql.*;
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletContext;
3 通过odbc数据库的形式,以sun.jdbc.odbc.JdbcOdbcDriver方式来取得.
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try {
con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
}
其中,sun是在数据源中的定义名称.在使用这种方式之前,需要先在"管理工具"--"数据源"中创建一个数据源连接.
自己都感觉有点乱.