zoukankan      html  css  js  c++  java
  • jdbc连接数据库以及从数据库获取数据的相关操作

    使用jdbc操作数据的步骤
    1、准备好数据库 可以自己命名 可以使用客户端插入相关数据
    创建一个user表
    CREATE TABLE user (
    id int(11) NOT NULL auto_increment,
    username varchar(32) NOT NULL COMMENT '用户名称',
    birthday datetime default NULL COMMENT '生日',
    sex char(1) default NULL COMMENT '性别',
    address varchar(256) default NULL COMMENT '地址',
    PRIMARY KEY (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    2、首先创建好工程 这里采用maven工程 因为自己导入jar包太麻烦

    3、在pom.xml文件中导入相应的坐标
    jar

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
    
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
    

    4、导入日志文件
    5、创建演示类 随便命名

    接下来就是操作数据库的过程
    1)加载jdbc驱动
    2)通过驱动获取数据库连接
    3)书写sql语句
    4) 使用连接创建statement对象
    5)利用对象执行sql语句 返回相应的结果
    6)遍历结果集对象
    7)关闭相应的资源
    public class JdbcDemo {
    public static void main(String[] args) {
    Connection connection = null;
    Statement statement = null;
    ResultSet result = null;
    //1、加载驱动
    try {
    Class.forName("com.mysql.jdbc.Driver");
    //2、通过驱动获取数据库连接
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis_day01","root","root");
    //3、写sql语句
    String sql = "select * from user";
    //4、创建statement对象 并设置相应的值
    statement = connection.createStatement();
    //5、执行sql语句 返回处理结果
    result = statement.executeQuery(sql);
    //6、遍历结果集
    while(result.next()){
    System.out.println(result.getString("id")+":"+result.getString("username"));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }finally {
    //7、释放资源
    if(result!=null){
    try {
    result.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
    

    }

    存在的问题:
    1)数据库连接频繁的创建会影响系统的性能
    2)sql语句在代码中硬编码 实际的sql变化可能较大 所以使用这种方式不易维护

  • 相关阅读:
    [ARC117F]Gateau
    [ARC117D]Miracle Tree
    [loj3504]支配
    [gym102511K]Traffic Blights
    [loj3501]图函数
    [loj3503]滚榜
    [loj3500]矩阵游戏
    [loj2135]幻想乡战略游戏
    [cf720D]Slalom
    [cf1349E]Slime and Hats
  • 原文地址:https://www.cnblogs.com/phantom576/p/11915630.html
Copyright © 2011-2022 走看看