数据库编程是编程技术中很重要的一个模块。本文将以MYSQL数据库为例,基于JAVA编程语言讲解数据库编程的连接。在进行编程前需要导入mysql数据库的驱动包:https://pan.baidu.com/s/1xpVjPNTQLv8vrBENuqYe0A
一:通过标准java库连接
对应的数据库名,用户名,密码改为自己的
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JdbcTest1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Connection conn=null;
String url="jdbc:mysql://localhost:3306/lwk";
//String url="jdbc:mysql://localhost:3306/lwk?characterEncoding=UTF-8";
//utf-8编码格式访问数据库
String username="root";
String password="root";
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url, username,password);
System.out.println(conn);
}
finally {
conn.close();
}
}
}
二:数据库连接池
需要导入对应得第三方jar包
https://pan.baidu.com/s/1kP8RdL4vLIyi2qnO8Cs-wg
1:dbcp数据源
(1):BasicDataSource类直接创建数据源对象(连接)
package dbcp;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
public class DbcpTest1 {
public static DataSource ds=null;
static {
BasicDataSource bds=new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/lwk");
bds.setUsername("root");
bds.setPassword("root");
bds.setInitialSize(5);
bds.setMaxIdle(5);
ds=bds;
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
Connection conn=ds.getConnection();
DatabaseMetaData md=conn.getMetaData();
System.out.println(md.getURL());
}
}
(2):通过BasicDataSourceFactory工厂类读取配置文件,之后创建数据源对象(连接)
1):配置文件放在src目录下,如命名为conn.properties
2):配置信息参考如下,具体自己做对应更改。
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/lwk
username=root
password=root
initialSize=5
maxActive=10
maxIdle=10
package dbcp;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
public class DbcpTest2 {
public static DataSource ds=null;
static {
try {
Properties prop=new Properties();
InputStream in=new DbcpTest2().getClass().getClassLoader().getResourceAsStream("conn.properties");
prop.load(in);
ds=BasicDataSourceFactory.createDataSource(prop);
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
Connection conn=ds.getConnection();
DatabaseMetaData md=conn.getMetaData();
System.out.println(md.getUserName());
}
}
2:c3p0数据源
(1)通过ComboPooledDataSource()创建数据源对象(连接)
package c3p0;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test1 {
public static DataSource ds=null;
static {
ComboPooledDataSource cpds=new ComboPooledDataSource();
try {
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/lwk");
cpds.setUser("root");
cpds.setPassword("root");
cpds.setInitialPoolSize(5);
cpds.setMaxPoolSize(15);
ds=cpds;
}catch(Exception e)
{
throw new ExceptionInInitializerError(e);
}
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
System.out.println(ds.getConnection());
}
}
(2)通过读取配置文件创建数据源对象
1):配置文件在src目录下,后缀为xml,如命名为itcast.xml
2):配置信息参考如下,具体自己做对象更改。
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lwk</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</default-config>
<named-config name="itcast">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lwk</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</named-config>
</c3p0-config>
package c3p0;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test2 {
public static DataSource ds;
static{
ComboPooledDataSource cpds=new ComboPooledDataSource("itcast");
ds=cpds;
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
System.out.println(ds.getConnection());
}
}