第一次去一家自己十分想去的公司面试,那时候面试官问了我一些关于JDBC的内容,我一下子无法答上来,然后从此就错过了那一家公司。毫无疑问,操作数据库对于一个软件和网站来说都是非常重要的,所以,为了更加系统地学习这方面的内容,趁着平时有空,对数据库方面的一些内容进行了练习。
- 连接数据库的几种方法
1、在平时使用的较多的也是比较常见的是原生的DriverManager的连接,示例如下:
public Connection getConn(){
public String url = "jdbc:mysql://localhost:3306/test";
public String user ="root";
public String pwd = "root";
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pwd);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
2、使用JNDI连接池
1)在服务器tomcat中的context.xml配置数据库的信息,配置内容如下:
<Resource name="test" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"/>
2)在java代码中获取Connection对象
public Connection getJNDI(){
public Connection conn = null;
try{
Context cxt = new InitialContext();
DataSource ds = (DataSource)cxt.lookup("java:/comp/env/test");
conn = ds.getConnection();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
3、使用第三方的连接池c3p0
1)导入两个包:c3p0.jar和mchange-commons-java.jar下载地址
2)在src目录下,添加c3p0-config.xml配置内容,如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="c3p0conn">
<property name="user">root</property>
<property name="password">root</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">10</property>
<property name="maxPoolSize">50</property>
<property name="maxStatements">20</property>
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
3)在java中的代码如下:
public Connection getC3p0(){
public Connection conn = null;
ComboPooledDataSource dataSource= new ComboPooledDataSource("c3p0conn");
try{
conn = dataSource.getConnection();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}