jdbc的小结

先将MySQL在虚拟机中开启,并且开启远程连接,关闭虚拟机防火墙。

然后在idea中新建一个project,在maven中添加

  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>

在右侧点击刷新,下载资源包。

下载完成后在src中的main中开始操作

大体说来一共五步操作

1.加载驱动 Class.forName
2.获取connection对象
3.创建statement对象用来执行sql语句
4.返回查询结果 resultset
5.释放资源 close 资源

第一步 

加载驱动

Class.forName(com.mysql.jdbc.Driver);

这里需要进行抛出异常!

第二步

获取connection对象

这里可以直接打 DriverManager 然后在其后面点出getConnection然后再点var获得对象

在括号中的顺序依次是

1:mysql的服务器地址,端口名,数据库名字(注意这里也需要注意顺序)

2:数据库用户名

3:数据库用户密码

 connection = DriverManager.getConnection("jdbc:mysql://192.168.233.45:3306/jdbcstudb", //mysql服务器地址,端口,数据库名
                    "root", //数据库的用户名:root
                    "root" //数据库用户密码:root
            );

这是具体的代码。

第三步 创建statement来执行sql语句

​​​​​​​

 

我们这里都将需要执行的sql语句表达为字符串。然后将里面需要输入的写为"?"再依次将要输入的值用数据类型赋值出来,通过创建connection的prepareStatement来将需要执行的sql语句放入到该对象中,再通过prepareStatement这个类的方法将需要输入的值依次赋给"?"从而实现sql语句的执行。

插入的实际代码如下

             String sql="insert into master(name,age,gender,yearnum,did) value (?,?,?,?,?)";
             String name="赵六";
             int age=22;
             String gender="男";
             int yearnum=8;
             int did=1;
             preparedStatement = connection.prepareStatement(sql);
             preparedStatement.setString(1,name);
             preparedStatement.setInt(2,age);
             preparedStatement.setString(3,gender);
             preparedStatement.setInt(4,yearnum);
             preparedStatement.setInt(5,did);
            int i = preparedStatement.executeUpdate();
            if (i>0){
                System.out.println("添加成功");
            }

后面的修改,删除都是有sql语句按照以上格式来完成的。

查找有所不同,查找需要用到第四步

第四步,返回resultset查询结果

resultset这个对象需要有prepareStatement这个对象调用executeQuery方法来创建,而创建他的目的就是通过打印resultset这个对象中的查询获得的结果。直接打印resultset是无法得到自己想要的结果的,必须打印resultset中对应数据类型查询的对应的元素名字。

实际代码

            String sql="select pid,m.name,d.name n ,d.health h,m.age,gender,yearnum,did from master m left join dog d on did=d.id where did=?";
            int did=2;
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setInt(1,did);
            ResultSet resultSet = preparedStatement.executeQuery();
            System.out.println("pid\t\t狗主人名字\t狗名字\t\t狗的健康值\t狗主人年龄\t狗主人性别\t狗主人养狗时长\t\t狗的编号");
            while (resultSet.next()){
                System.out.print(resultSet.getInt("pid")+"\t\t");
                System.out.print(resultSet.getString("m.name")+"\t\t\t");
                System.out.print(resultSet.getString("n")+"\t\t");
                System.out.print(resultSet.getInt("h")+"\t\t\t");
                System.out.print(resultSet.getInt("age")+"\t\t\t\t");
                System.out.print(resultSet.getString("gender")+"\t\t");
                System.out.print(resultSet.getString("yearnum")+"\t\t\t\t");
                System.out.println(resultSet.getString("did"));
            }

注意这里面取的别名下面也是可以用的。

第五步也很重要

释放资源。

finally {
            //第五步释放资源
            try {
                //if (resultSet!=null){
                 //   resultSet.close();
                //}
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值