Mybatis从入门到精通——JDBC使用回顾(2)

一、简要说明

不管是Mybatis还是Hibernate都是对JDBC的二次封装,在使用JDBC之前,我们先回顾一下JDBC的使用。

 

二、准备工作

1.maven依赖

       <dependencies>
             <!--    mysql驱动    -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>

            <!--    junit测试    -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>

        </dependencies>

2.实体类

public class Person {

    private Integer id;

    private String name;

    private String sex;

    private String telephone;

    private String address;

    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", telephone='" + telephone + '\'' +
                ", address='" + address + '\'' +
                ", age=" + age +
                '}';
    }
}

3.sql资源

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL COMMENT '名字',
  `sex` char(1) NOT NULL DEFAULT '男' COMMENT '性别',
  `telephone` varchar(11) DEFAULT NULL COMMENT '手机号',
  `address` varchar(50) DEFAULT NULL COMMENT '地址',
  `age` tinyint(4) DEFAULT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1295453 DEFAULT CHARSET=utf8;


INSERT INTO `person` VALUES ('1', 'xy', '男', '123456', '测试', '18');
INSERT INTO `person` VALUES ('2', 'ceshi', '女', '123456789', '美国', '20');
INSERT INTO `person` VALUES ('3', 'ceshi', '女', '123456789', '美国', '21');

    

 

三、JDBC使用说明

JDBC具体使用步骤共分为六步:

    1.注册驱动

    2.通过驱动管理器(DriverManager)获取连接(Connection)

    3.通过连接(Connection)获取数据库操纵对象(Statement)

    4.通过数据库操纵对象(Statement)执行SQL

    5.获取执行后的结果集(ResultSet),并进行结果处理

    6.释放以上对象的资源(先使用的后释放)

具体步骤代码及测试代码如下:

public class MybatisTest {

    @Test
    public void test() throws ClassNotFoundException {
        String username = "root";
        String password = "123456";
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        String url = "jdbc:mysql://localhost:3306/mybatis_study?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8";
        //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        try {
            //2.获取数据库连接
            connection = DriverManager.getConnection(url, username, password);
            //3.获取一个Statement对象
            statement = connection.createStatement();
            String sql = "select * from person limit 1";
            //4.执行sql
            resultSet = statement.executeQuery(sql);
            //5返回结果处理
            Person person = new Person();
            while (resultSet.next()) {
                person.setId(resultSet.getInt("id"));
                person.setAge(resultSet.getInt("age"));
                person.setName(resultSet.getString("name"));
                person.setAddress(resultSet.getString("address"));
                person.setSex(resultSet.getString("sex"));
                person.setTelephone(resultSet.getString("telephone"));
            }
            System.out.println(person);
        }catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //6.释放连接
            if(resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }finally {
                    try {
                        if(statement != null) {
                            statement.close();
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }finally {
                        if(connection != null) {
                            try {
                                connection.close();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
        }
    }
}
发布了61 篇原创文章 · 获赞 81 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/m0_37914588/article/details/104729694