| 类 | 描述 |
|---|---|
| DriverManager | 用于管理一组JDBC驱动程序的基本服务。 注意: JDBC 2.0 API中新增的DataSource接口提供了另一种连接到数据源的方法。 |
| Connection | 创建一个 Statement对象,用于将SQL语句发送到数据库 |
| Statement | 用于执行静态SQL语句,返回结果集对象ResultSet |
| ResultSet | 获取结果集数据 |
// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
//static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
//static final String DB_URL = "jdbc:mysql://localhost:3306/mydb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
static final String USER = "root"; // 数据库的用户名与密码,需要根据自己的设置
static final String PASS = "123456";
Connection conn = null;
Statement stmt = null;
try{
Class.forName(JDBC_DRIVER);// 注册 JDBC 驱动
conn = DriverManager.getConnection(DB_URL,USER,PASS); // 链接数据库
stmt = conn.createStatement(); //实例化Statement对象
String = "SELECT id, name, url FROM websites";
ResultSet rs = stmt.executeQuery(sql); // 执行查询
while(rs.next()){ //获取结果集
int id = rs.getInt("id"); //获取id字段
String name = rs.getString("name");
String url = rs.getString("url");
}
// 关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
// 什么都不做
}
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
MySQL8 数据库配置: 1.tamcat服务器安装目录下:conf/context.xml文件添加: 也可以在conf/server.xml文件<Host>标签中添加<Context>标签: <Resource name="jdbc/TestDB" <!--JNDI名,数据源名称,TestDB自定义--> auth="Container" <!--设置由容器来负责资源的连接--> type="javax.sql.DataSource" <!--数据源对应的名称--> driverClassName="com.mysql.cj.jdbc.Driver" <!--数据库驱动程序名称--> url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC" <!--数据库名称--> username="root" <!--数据库用户名--> password="123456" <!--数据库密码--> maxActive="100" maxIdle="30" <!--最小保持连接数--> maxWait="1000"/> <!--最大连接等待时间秒--> 2.在web项目中:WEB-INF/web.xml文件,配置引用的连接池资源 <resource-ref> <description>Test</description> <res-ref-name>jdbc/TestDB</res-ref-name> <!--数据源引用名,JNDI名--> <res-type>javax.sql.DataSource</res-type> <!--数据源对应的名称--> <res-auth>Container</res-auth> <!--数据源连接方式,由容器来负责资源的连接--> </resource-ref> 3.编写程序访问数据库 import java.sql. //数据库查询包 import javax.sql.* //DataSource池连接包 import javax.naming.* //名称查找开发包 DataSource ds=null; try{ InitialContext ctx=new InitialContext(); //实例化一个Context对象,javax.naming包 ds=(DataSource)ctx.lookup("java:comp/env/jdbc/TestDB"); //检索命名对象,固定的:java:comp/env/ Connection conn=ds.getConnection(); //连接数据库,javax.sql包 Statement stmt=conn.createStatement(); //实例化Statement对象,java.sql包 String strSql="select * from Login"; ResultSet rs=stmt.executeQuery(strSql); //执行SQL查询 while(rs.next()) out.println(rs.getString(2)); //打输出结果 } catch(Exception e){ out.println(e.getMessage()); } finally { if(conn!=null)conn.close(); //归还池线程 } 注: 驱动程序文件(mysql-connector-java-5.1.39-bin.jar或mysql-connector-java-8.0.15.jar等文件)一定要放在TOMCAT的lib目录下,放在应用程序对应的lib目录下不行。