【JDBC】JDBC入门
程序员文章站
2022-05-13 12:17:32
JDBC的入门 搭建开发环境 编写程序,在程序中加载数据库驱动 建立连接 创建用于向数据库发送SQL的Statement对象 从代表结果集的ResultSet中取出数据 断开与数据库的连接,并释放相关资源 新建一个测试用的数据库jdbctest 下载数据库驱动并导入到jdbc项目 下载地址:http ......
jdbc的入门
- 搭建开发环境
- 编写程序,在程序中加载数据库驱动
- 建立连接
- 创建用于向数据库发送sql的statement对象
- 从代表结果集的resultset中取出数据
- 断开与数据库的连接,并释放相关资源
新建一个测试用的数据库jdbctest
create database if not exists jdbctest default character set 'utf8'; use jdbctest; create table if not exists user( uid int unsigned auto_increment key, username varchar(20) not null, password varchar(20) not null, name varchar(20) not null )engine=innodb charset=utf8; insert user values (null, 'aaa', '111', '张三'), (null, 'bbb', '222', '李四'), (null, 'ccc', '333', '王五');
下载数据库驱动并导入到jdbc项目
下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
编写jdbc测试程序(mysql版本为8.0.17)
package demo1; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import org.junit.test; public class jdbcdemo1 { @test /** * jdbc入门程序 */ public void demo1() { connection conn = null; statement stmt = null; resultset rs = null; try { //1.加载驱动 class.forname("com.mysql.cj.jdbc.driver"); //2.获得连接 conn = drivermanager.getconnection("jdbc:mysql://localhost:3306/jdbctest" + "?usessl=false&servertimezone=hongkong&useunicode=true&characterencoding=utf-8", "root", "1234"); //3创建执行sql语句的对象,并且执行sql //3.1创建执行sql语句的对象 string sql = "select * from user"; stmt = conn.createstatement(); //3.2执行sql rs = stmt.executequery(sql); while(rs.next()) { int uid = rs.getint("uid"); string username = rs.getstring("username"); string password = rs.getstring("password"); string name = rs.getstring("name"); system.out.println(uid + "-" + username + "-" + password + "-" + name); } } catch (sqlexception | classnotfoundexception e) { e.printstacktrace(); } finally { //4.释放资源 if(rs != null) { try { rs.close(); } catch (sqlexception sqlex) { // ignore } rs = null; } if(stmt != null) { try { stmt.close(); } catch (sqlexception sqlex) { // ignore } stmt = null; } if(conn != null) { try { conn.close(); } catch (sqlexception sqlex) { // ignore } conn = null; //垃圾回收机制更早回收对象。 } } } }
jdbc的api
drivermanager
connection
statement
resultset
jdbc的资源释放
- jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是resultset,statement和connection对象。
- 特别是connection对象,它是非常稀有的资源,用完后必须马上释放,如果connection不能及时、正确的关闭,极易导致系统宕机。connection的使用原则是尽量晚创建,尽量早的释放。