zoukankan      html  css  js  c++  java
  • 【JDBC】JDBC入门

    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的使用原则是尽量晚创建,尽量早的释放。
  • 相关阅读:
    Python学习 之 流程控制
    Python学习 之 数据类型(邹琪鲜 milo)
    Python学习 之 运算符&表达式
    Python学习 之 编程
    Python学习 之 走进python
    [考试维护]之命名的规范 2015-07-04 21:11 871人阅读 评论(37) 收藏
    [考试维护]修改代码的感受 2015-06-29 11:38 635人阅读 评论(30) 收藏
    如无必要,勿增实体 2015-05-31 20:34 2142人阅读 评论(37) 收藏
    【英语月总】我真的意识到英语的重要性了吗 2015-05-30 21:08 884人阅读 评论(27) 收藏
    selenium测试(Java)--关闭窗口(二十)
  • 原文地址:https://www.cnblogs.com/huowuyan/p/11620465.html
Copyright © 2011-2022 走看看