总结java中连接数据库的四种方式
一、直接编码连接数据库
代码示例如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtils {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
public Connection getConn() {
Connection conn = null;
ResultSet rs = null;
try {
String url = "jdbc:oracle:thin:@localhost:1521:oracle";
conn = DriverManager.getConnection(url, "name", "password");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return conn;
}
}
二、使用context.xml配置文件
context.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/ly"
type="javax.sql.DataSource"
password="******"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="20"
maxWait="50"
username="******"
url="jdbc:oracle:thin:@localhost:1521:orcl"
maxActive="100">
</Resource>
</Context>
然后在工具类中编写代码如下即可:
public Connection getConn() {
Connection conn = null;
Context ctx;
try {
ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ly");
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (NamingException e) {
e.printStackTrace();
}
return conn;
}
三、配置文件配置 datasource
datasource配置如下:
<data-sources>
<!-- 配置数据源,可以配置多个数据源,在多个数据库进行操作数据 -->
<data-source key="oracle" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<set-property property="username" value="******" />
<set-property property="password" value="******" />
<set-property property="maxCount" value="20" />
<set-property property="minCount" value="5" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="ds" />
</data-source>
然后就可以在其它使用到数据库的文件中通过声明datasource对象来调用了。
private DataSource ds;
Connection con = null;
con = ds.getConnection();
四、通过配置jdbc-odbc连接桥
此方式只能适合于windows系统,需要在windows系统中配置数据源,配置数据源后代码类似于第一种方式。
这里就不贴代码了。
一、直接编码连接数据库
代码示例如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtils {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
public Connection getConn() {
Connection conn = null;
ResultSet rs = null;
try {
String url = "jdbc:oracle:thin:@localhost:1521:oracle";
conn = DriverManager.getConnection(url, "name", "password");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return conn;
}
}
二、使用context.xml配置文件
context.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/ly"
type="javax.sql.DataSource"
password="******"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="20"
maxWait="50"
username="******"
url="jdbc:oracle:thin:@localhost:1521:orcl"
maxActive="100">
</Resource>
</Context>
然后在工具类中编写代码如下即可:
public Connection getConn() {
Connection conn = null;
Context ctx;
try {
ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ly");
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (NamingException e) {
e.printStackTrace();
}
return conn;
}
三、配置文件配置 datasource
datasource配置如下:
<data-sources>
<!-- 配置数据源,可以配置多个数据源,在多个数据库进行操作数据 -->
<data-source key="oracle" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<set-property property="username" value="******" />
<set-property property="password" value="******" />
<set-property property="maxCount" value="20" />
<set-property property="minCount" value="5" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="ds" />
</data-source>
然后就可以在其它使用到数据库的文件中通过声明datasource对象来调用了。
private DataSource ds;
Connection con = null;
con = ds.getConnection();
四、通过配置jdbc-odbc连接桥
此方式只能适合于windows系统,需要在windows系统中配置数据源,配置数据源后代码类似于第一种方式。
这里就不贴代码了。