发表于: 2019-03-02 21:21:34

1 631


jdbc复习

   到spring才发现之前的学习确实都过急躁,缺漏太多,单是对jdbc的理解就非常的不足,无法将一个jdbc连接数据库的过程分解清晰,所以今天回到jdbc章节中做一些代码练习。


1.使用final变量、常量和jdbc技术连接MySQL数据库。

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {
   private static final String url = "jdbc:mysql://localhost:3306/test";//地址常量
   private static final String user = "root";//用户常量
   private static final String password = "159357";//密码常量
   Connection conn;//连接对象变量
   void method(){
       try {
           Class.forName("com.mysql.cj.jdbc.Driver");//驱动加载
           System.out.println("数据库驱动加载成功");
       }catch (Exception e){//捕捉异常
           e.printStackTrace();
       }
       try {//捕捉异常
           conn = DriverManager.getConnection(url,user,password);//数据库连接
           System.out.println("数据库连接成功");
       }catch (Exception e){
           e.printStackTrace();
       }
   }

   public static void main(String[] args) {//主方法入口(运行入口)
       DBConnection con = new DBConnection();//创建本类对象,不创建对象的话无法调用方法
       con.method();//本类对象调用method()方法
   }
}

结果:

2.使用jdbc技术连接JavaDB数据库。

    先创建一个名为javaDB的数据库。

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {//创建类

   Connection conn;//连接对象变量
   void method(){
       try {
           Class.forName("com.mysql.cj.jdbc.Driver");//驱动加载
           System.out.println("数据库驱动加载成功");
       }catch (Exception e){//捕捉异常
           e.printStackTrace();
       }
       try {//捕捉异常
           conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" +
                   "JavaDB","root","159357");//数据库连接
           System.out.println("javaDB数据库连接成功");
       }catch (Exception e){
           e.printStackTrace();
       }
   }

   public static void main(String[] args) {//主方法入口(运行入口)
       DBConnection con = new DBConnection();//创建本类对象,不创建对象的话无法调用方法
       con.method();//本类对象调用method()方法
   }
}

结果为:


3.查询MySQL数据库test中的数据表tb_book,获取编程词典6月份的销量后,将其输出在控制台上。

     先在数据库中创建出test数据库和tb_book数据表,添加一些数据。

import java.sql.*;

public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
   public static void main(String[] args) throws SQLException {
       Find f = new DBConnection();//new一个DBConnection的对象给Find
       Connection conn;//声明Connection连接对象
       Statement stam;//声明Statement执行SQL语句对象
       ResultSet re;//声明ResultSet存放结果对象
       try {//捕捉异常
           conn = ((DBConnection) f).method();//调用数据库连接方法
           stam = conn.createStatement();//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
           re = stam.executeQuery("select * from tb_book where id = 3");//执行SQL语句,并返回结果集
           while (re.next()){//如果当前语句不是最后一条则进入循环
              String id = re.getString("id");//获取id字段
              String name = re.getString("name");//获取name字段
              String month = re.getString("month");//获取month字段
              String quantity= re.getString("quantity");//获取quantity子弹
              System.out.print("id"+id+" ");
              System.out.print("书名:"+name+" ");
              System.out.print("月份:"+month+" ");
              System.out.println("销售数量:"+quantity);
          }
       }catch (Exception e){
           e.printStackTrace();
       }
   }
}

结果为:

4.查询MySQL数据库test中的数据表tb_booksaleinfo中销量排名前7位的所有图书信息,并将这部分信息显示在窗体表格中。

    先创建表格

import java.sql.*;

public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
   public static void main(String[] args) throws SQLException {
       Find f = new DBConnection();//new一个DBConnection的对象给Find
       Connection conn = null;//声明Connection连接对象
       Statement stam = null;//声明Statement执行SQL语句对象
       ResultSet re = null;//声明ResultSet存放结果对象
       try {//捕捉异常
           conn = ((DBConnection) f).method();//调用数据库连接方法
           stam = conn.createStatement();//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
           re = stam.executeQuery("select * from tb_booksaleInfo where rank between 1 and 7");//执行SQL语句,并返回结果集
           while (re.next()) {//如果当前语句不是最后一条则进入循环
               String id = re.getString("id");//获取id字段
               String name = re.getString("name");//获取name字段
               String month = re.getString("month");//获取month字段
               String quantity = re.getString("quantity");//获取quantity字段
               String rank = re.getString("rank");//获取rank字段
               System.out.print("\tid" + id );
               System.out.print("\t书名:" + name);
               System.out.print("\t月份:" + month);
               System.out.print("\t销售数量:" + quantity);
               System.out.println("\t销售排行:" + rank);
           }
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
}

结果为



5.使用动态查询MySQL数据库test中的数据表tb_booksaleinfo中销量排名前7位的所有图书信息,并将这部分信息显示在窗体表格中。

import java.sql.*;

public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
   public static void main(String[] args) throws SQLException {
       Find f = new DBConnection();//new一个DBConnection的对象给Find
       Connection conn = null;//声明Connection连接对象
       PreparedStatement stam = null;//声明PrepareStatement预编译SQL语句对象
       ResultSet re = null;//声明ResultSet存放结果对象

       try {//捕捉异常
           conn = ((DBConnection) f).method();//调用数据库连接方法
           stam = conn.prepareStatement("select * from tb_booksaleInfo where id between ? and ?");//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
           stam.setInt(1,2);//设置执行语句左起第1个通配符为2
           stam.setInt(2,8);//设置执行语句左起第2个通配符为8
           re = stam.executeQuery();//执行SQL语句,并返回结果集
           while (re.next()) {//如果当前语句不是最后一条则进入循环
               String id = re.getString("id");//获取id字段
               String name = re.getString("name");//获取name字段
               String month = re.getString("month");//获取month字段
               String quantity = re.getString("quantity");//获取quantity字段
               String rank = re.getString("rank");//获取rank字段
               System.out.print("\tid" + id );
               System.out.print("\t书名:" + name);
               System.out.print("\t月份:" + month);
               System.out.print("\t销售数量:" + quantity);
               System.out.println("\t销售排行:" + rank);
           }
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
}

结果为:



6.使用插入语句在tb_booksaleInfo中插入一条id为15,书名为《好好学习》6月份销售量108本的信息

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;


public class Add {//创建类
   Connection conn;//连接对象
   public Connection getConnection() {//连接数据库方法
       try {
           Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
           conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","159357");//连接数据库
           System.out.println("连接成功");
       }catch (Exception e){
           e.printStackTrace();
       }
     return conn;
   }

   public static void main(String[] args) {
       Add add = new Add();//创建对象
       PreparedStatement stam;//声明对象
       Connection con;//声明对象
       con = add.getConnection();//与数据库取得联系
       try {//捕捉异常
           stam = con.prepareStatement("insert into tb_booksaleinfo values (?,?,?,?,?)");//实例化预处理对象
           stam.setInt(1,15);//设置处理参数
           stam.setString(2,"好好学习");//设置处理参数
           stam.setString(3,"June");//设置处理参数
           stam.setInt(4,108);//设置处理参数
           stam.setInt(5,11);//设置处理参数
           stam.executeUpdate();//执行语句操作并更新
       }catch(Exception e){
           e.printStackTrace();
       }
   }
}

结果:




今日收获:熟悉了jdbc的使用

问题:没有了解完每种接口的方法

明日计划:再做点题巩固巩固,然后试试看能不能理解spring



返回列表 返回列表
评论

    分享到