Eclipse+java+mysql8.0.19实现数据库连接

要想用Java实现数据库连接,我们需要jdbc来进行数据库连接操作,因为默认安装的JDK的扩展中没有JDBC驱动
对于Oracle数据库(Oracle11,12,18c)等是对应版本的ojdbc
要想实现连接数据库,要先下载mysql-connector-java-5.1.47(或者其他版本)的jar包。jar包必须与mysql版本匹配不过低版本的jar包不会出现时差问题的异常。选择操作系统,windows系统可是一张大图片

建议在下载界面点右边的"Looking for previous GA versions?"下载低版本的。
在这里插入图片描述
下载完jdbc以后解压,保存一下
然后就要使用eclipse配置jar了
1.Window-preferences-java-Build Path-User Libraries
在这里插入图片描述

在这里插入图片描述
2.点击右侧的new按钮
在这里插入图片描述
3.在这里输入jdbc,选中对勾,点击ok
在这里插入图片描述
4.回到上一级界面,点击Add External JARs,打开到你的jdbc存放的目录,打开-ok。
在这里插入图片描述
5.接下来是项目导入jar包,项目右键-Build Path-Configure Build Path
在这里插入图片描述
6.点击右侧Add Library… -User Library-Next。打上对勾点击finish
在这里插入图片描述
7.回到上一级界面就可以看到你添加的jdbc,点击Apply再点击ok。
在这里插入图片描述
8.这样在你的项目下就可以看到你导入的jdbc了
在这里插入图片描述
接下来你需要在数据库中建立表,添加表的信息。
下面的是我的。

* 1--- 在system用户建立表*/ 
show user;
drop table sc;
drop table s;
drop table c;


create table s(
  sno char(4) not null primary key,
  sname varchar(10),
  sex char(3),
  dept varchar(4),
  age int 
);
insert into s values('801','金贤重','男','CS',23);
insert into s values('802','李敏镐','男','MA',25);
insert into s values('803','那英','女','CS',41);
insert into s values('804','金秀贤','女','MA',24);
insert into s values('805','刘德华','男',null,52);
insert into s values('806','文章','男','CS',27);
insert into s values('807','刘欢','男','MA',51);
insert into s values('808','马伊琍','女','CS',36);
insert into s values('809','姚笛','女','MA',23);
insert into s values('810','周杰伦','男',null,39);


create table c(
  cno char(3) primary key,
  cname varchar(20),
  credit int
);
insert into c values('01','数据库',3);
insert into c values('02','OS',4);
insert into c values('03','C++',2);
insert into c values('04','Java',3);

create table sc(
  sno char(4),
  cno char(3),
  grade numeric(3),
  constraint sc_pk primary key(sno,cno),
  constraint sc_fk1 foreign key(sno) references s(sno),
  constraint sc_fk2 foreign key(cno) references c(cno),
  constraint sc_grade check (grade between 0 and 100 or grade is null)
);

insert into sc values('801','01',81);
insert into sc values('801','02',null);
insert into sc values('801','03',92);
insert into sc values('801','04',40);
insert into sc values('802','03',68);
insert into sc values('802','04',55);
insert into sc values('803','01',59);
insert into sc values('803','02',45); 
insert into sc values('803','04',61); 
insert into sc values('804','02',30);

commit;

select * from s;
select * from c;
select * from sc; 

下面的是我的测试java代码

package student;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Dbstu {
    public static void main(String[] args){
        
    // 加载数据库驱动  com.mysql.jdbc.Driver
        String driver = "com.mysql.cj.jdbc.Driver";
        // 获取mysql连接地址
       String url = "jdbc:mysql://127.0.0.1:3308/text002?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
       		+ "&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL";
       //127.0.0.1是ip
       //3308是端口号
       //text002是表的名字
       //serverTimezone=Asia Shanghai是时区。
       //characterEncoding=UTF-8是字符编码方式
        // 数据名称
       String username ="root";
        // 数据库密码
        String password ="123456";
        // 获取一个数据的连接
        Connection conn = null;
        // 获取连接的一个状态
        try{
            Class.forName(driver);
            //getConnection()方法,连接MySQL数据库!
            conn=DriverManager.getConnection(url,username,password);
            if(!conn.isClosed())
            System.out.println("数据库连接成功!");
             //创建statement类对象,用来执行SQL语句!
            Statement Statement=conn.createStatement();
            //要执行的SQL语句
            String sql="select * from s where sex='男' and age<30" ;
            String num,name; 
            int sum=1;
            int age;
            //ResultSet类,用来存放获取的结果集!
            ResultSet rs=Statement.executeQuery(sql);
            System.out.println(" \n\n   学生信息表");  
            System.out.println("   ---------------------");  
          	System.out.println("   序号    学号    姓名   年龄");  
            System.out.println("   ---------------------");
            /**5 --对结果表rs处理:
              (1) 指针下移一行rs.next(), rs.next()返回值为true或false
              (2) 读取当前行数据:getXXX(); 并赋值于Java变量
            */
            
             while(rs.next()){
            	 
            	 num = rs.getString("sno");
                 name = rs.getString("sname"); 
                 age = rs.getInt("age");        		 
                 System.out.println("    "+sum+"    "+num+"    "+name+"   "+age);
                 sum+=1;
             }
             System.out.println("   ---------------------");
           //6 -- 关闭连接资源
             rs.close();
             conn.close();
         }
         catch(ClassNotFoundException e){
             //数据库驱动类异常处理
        System.out.println("数据库驱动加载失败!");
        e.printStackTrace();
         }
        catch(SQLException e1){
        //数据库连接失败异常处理
         e1.printStackTrace();
        }
        catch(Exception e2){
        e2.printStackTrace();
        }
       
        }
        }




执行结果

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值