JDBC(Java Dadabase Connectivity)Java数据库连接。
JDBC本质:其实是官方(Sun公司)定义的一套操作所有关系型数据库的规则(接口)。各个数据库厂商去实现这个接口,提供数据库驱动(jar包)。我们可以使用这套接口编程,但真正执行的代码是驱动jar包中的实现类。
简单使用步骤:
1、导入驱动jar包
将mysql-connector-java-5.1.37-bin.jar到项目的libs中,并添加进项目。
2、注册驱动
3、获取数据库连接对象Connectivity
4、定义sql
5、获取执行sql语句的对象Statement
6、执行sql,接受返回结果
7、处理结果
8、释放资源
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
//定义sql语句
String sql="update user set password=654321 where id=1";
//获取执行sql的对象,Statement
Statement stmt = conn.createStatement();
//执行sql
int count = stmt.executeUpdate(sql);
//处理结果
System.out.println(count);
//释放资源
stmt.close();
conn.close();
}
详解对象:
DriverManager:驱动管理对象(功能:1.注册驱动、2.获取数据库连接)
Connection:数据库连接对象(功能:1.获取执行sql的对象、2.管理事务)
Statement:执行sql的对象(功能:1.执行静态SQL语句、不推荐使用)
ResuleSet:结果集对象
PreparedStatement:执行sql的对象(功能:1.执行动态SQL语句、推荐使用)
事务管理:
开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,及开启事务。在执行sql之前开启事务。
提交事务:commit():在所有sql都执行完毕后提交事务。
回滚事务:rollback():在发送错误及catch中回滚事务。
数据库连接池概念:
数据库连接池其实就是一个存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
好处:
1、节约资源
2、用户访问高效
数据库连接池技术C3P0:
1、导入jar包(c3p0-0.9.5.2.jar、mchange-commons-java-0.2.12.jar),前提条件需要数据库驱动jar包。
2、定义配置文件。名称必须为c3p0.properties或者c3p0-config.xml。路径可直接将文件放在src目录下。
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test root 123456 5 10 3000 com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test root 123456 5 8 1000
3、创建核心对象(ComboPooledDataSource:数据库连接池对象)。
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
//c3p0的演示
public class C3P0_Demo1 {
public static void main(String[] args) throws SQLException {
//创建数据库连接对象
DataSource ds=new ComboPooledDataSource();
//获取连接对象
Connection conn = ds.getConnection();
//输出连接对象
System.out.println(conn);
}
}
Druid:
1、导入jar包(druid-1.0.9.jar),前提条件需要数据库驱动jar包。
2、定义配置文件。名称需为druid.properties文件形式。路径可任意。
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=123456 #初始化连接数 initialSize=5 #最大连接数 maxActive=10 #超时时间 maxWait=3000
3、加载配置文件
4、获取数据库连接池对象(DruidDataSourceFactory:通过工厂模式获取)
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
//演示Druid
public class Druid_Demo1 {
public static void main(String[] args) throws Exception {
//加载配置文件
Properties pro=new Properties();
InputStream is =
Druid_Demo1.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//创建并获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
Connection conn = ds.getConnection();
//输出连接对象
System.out.println(conn);
}
}



