jdbc入门

实习第二天

学习关于jdbc的相关知识

在这里插入图片描述

重温java

首先了解一行代码

class.forname(“com.mysql.jdbc.Driver”);
Java异常包括两种,一种是需要处理的,一种是不必须处理的,这行代码将会抛出一个必须处理的异常,处理方式有两种,一种是将异常抛出至上一级,另一种是用try catch捕获异常进行处理。为了简化代码,全部抛出至上一级。

包的分层

新建包的时候输入 com.whut.demo1,建立三个包,一级目录二级目录三级目录分别为com、whut、demo1.

面向对象思想的JDBC编程

分了三个包,DAO放了对数据库的基本操作,Conn包进行数据库的连接,service用来放置后续的服务
修改后的代码如下

Conn类

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Conn {
    private Connection con;
    public void setcon (Connection con){
        this.con = con;
    }
    public Connection connect() {
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名login
        String url = "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "1234zhang";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()方法,连接MySQL数据库!!
            con = DriverManager.getConnection(url, user, password);
            if (!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!

        } catch (ClassNotFoundException e) {
            //数据库驱动类异常处理
            System.out.println("Sorry,can`t find the Driver!");
            e.printStackTrace();
        } catch (SQLException e) {
            //数据库连接失败异常处理
            e.printStackTrace();
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            System.out.println("数据库数据成功获取!!");
        }
        return con;
    }
}

dbselect类

package DAO;

import Conn.*;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class dbselect {
        private Connection con = null ;
        public void sele() throws SQLException, UnsupportedEncodingException {
            String sql = "select * from student";    //从建立的login数据库的login——message表单读取数据
            Conn co = new Conn();
            dbselect dbs = new dbselect();
            dbs.con = co.connect();
        //3.ResultSet类,用来存放获取的结果集!!
            ResultSet rs = null;
            Statement statement = dbs.con.createStatement();
            rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("执行结果如下所示:");
            System.out.println("-----------------");
            System.out.println(" 学号" + "\t" + " 姓名" + "\t" + "性别");
            System.out.println("-----------------");
            String name = null;
            String login_password = null;
            String sex = null;
            while (rs.next()) {
            //获取stuname这列数据
            name = rs.getString("sno");
            //获取stuid这列数据
            login_password = rs.getString("sname");
            sex = rs.getString("sex");
            //首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
            //然后使用GB2312字符集解码指定的字节数组。
            name = new String(name.getBytes("ISO-8859-1"), "gb2312");
            //输出结果
            sex = new String(sex.getBytes());
            System.out.println(name + "\t" + login_password + "\t\t" + sex);
        }
        dbs.con.close();
        rs.close();
        statement.close();
    }
}


dbmain(主类)

package DAO;
import Conn.*;
import Conn.Conn;

import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import java.util.Scanner;

public class dbmain {
    public static void main(String[] args) throws SQLException, UnsupportedEncodingException {
        System.out.println("请选择要进行的操作。");
        System.out.println("1.添加");
        System.out.println("2.删除");
        System.out.println("3.查找");
        System.out.println("4.修改");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt();
        switch (choose)
        {
            case 1:
                dbadd add = new dbadd();
                add.adddb();
                break;
            case 2:
                break;
            case 3:
                dbselect dbs = new dbselect();
                dbs.sele();
                break;
            case 4:
                break;
                default:break;

        }


    }

}

dbadd类

package DAO;
import Conn.*;

import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class dbadd {
    private Connection con = null ;
    public void adddb() throws SQLException, UnsupportedEncodingException {
        Conn co = new Conn();
        dbadd add = new dbadd();
        add.con = co.connect();
        String sql = "insert into student value (default,'lidfdi','女')";
        Statement stmt = add.con.createStatement();
            try {
                stmt.executeUpdate(sql);
                System.out.println("插入成功");
            } catch (SQLException e) {
                e.printStackTrace();
            }

        //要执行的SQL语句
            add.con.close();
            stmt.close();
    }
}

运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值