通过JBuider界面访问数据库(例子)

此例子是学员管理的查询代码

 

 

步踌: 

 

1 建立数据库,建立表,添加测试数据
2 设置数据源
3 新建Java项目、包和图形界面
4 建立实体类
5 书写dao代码
6 书写事件处理代码

 

 

 

实体类;

 

package dbtest.entity;

/**
 * 类:学员实体类
 *
 */

public class StudentInfo {
    //属性:标识列,代表编号
    private int id;
    //属性:学生姓名
    private String stuName;
    //属性:学号
    private String SCode;
    //属性:年龄
    private int stuAge;
    //属性:性别
    private String stuSex;
   
    public String getStuName() {
        return stuName;
    }

    public int getStuAge() {
        return stuAge;
    }

    public String getStuSex() {
        return stuSex;
    }

    public int getId() {
        return id;
    }

    public String getSCode() {
        return SCode;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public void setStuSex(String stuSex) {
        this.stuSex = stuSex;
    }

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

    public void setSCode(String SCode) {
        this.SCode = SCode;
    }
}

 

DAO类:

 

//导入多个类
import java.sql.Connection;           //连接类
import java.sql.DriverManager;        //连接管理器类
import java.sql.SQLException;        //SQL异常类
import java.sql.ResultSet;            //结果集类
import java.sql.PreparedStatement;     //SQL语句管理器
import dbtest.entity.StudentInfo;     //实体类
       

/**
 * 类:DAO类,用于访问stuDb数据库
 * 功能:对stuDb数据库执行增、删、改、查
 * 作者:Leo
 * 单位:cdjj
 * 日期:
 */


public class StuDao {


    /**
     * 属性:声明数据库访问驱动程序(砸开数据库大门用的是什么砖头)
     * 常量:不可进行修改
     */
    private static final String DRIVER_CLASS = "sun.jdbc.odbc.JdbcOdbcDriver";

    /**
     * 属性:声明数据源(要访问哪个数据库)
     * 常量:不可进行修改(stuDb表示的是数据源名称,可变,不可修改)
     */
    private static final String DATASOURCE = "jdbc:odbc:stuDb";


    /**
     *  方法:获得数据库连接
     *  功能:获得程序和数据库的联通通道
     *  参数:无
     *  返回值:Connection实例
     */
    public static Connection getConnction() {
        //建立连接第一步:声明一个空的连通通道,即Connection实例
        Connection con = null;
        try {
            //建立连接第二步:加载数据库驱动程序(扔砖头砸门)
            Class.forName(DRIVER_CLASS);
            //建立连接第三步:和数据源建立连接(通道建立成功)
            con = DriverManager.getConnection(DATASOURCE);
        } catch (Exception e) {
            System.err.println("数据库连接出现问题,请检查");
        }
        //返回连接实例
        return con;
    }


    /**
     * 方法:根据学号查询学员信息
     * 参数:String 学号
     * 返回值:javabean实例
     */
    public StudentInfo getStudentInfoByCode(String stuCode) {

        //声明数据连接实例(表示程序和数据库连接的通道)
        Connection con = null;
        //声明SQL语句容器(对sql语句进行管理)
        PreparedStatement ps = null;
        //声明结果集(临时存放从数据库中取得的结果)
        ResultSet res = null;

       StudentInfo sinfo = new StudentInfo();

        try {
            //访问数据库第一步:建立连接通道,调用方法getConnction()
            con = this.getConnction();
            //访问数据库第二步:声明SQL语句
            String strSql = "select * from StudentInfo where SCode = (?)";

            //访问数据库第三步:将SQL字符串放入ps容器
            ps = con.prepareStatement(strSql);
            //访问数据库第四步:对字符串中的变量进行灵活赋值
            ps.setString(1 , stuCode);
            //访问数据库第五步:操纵ps执行查询操作,返回结果集
            res = ps.executeQuery();
            //将结果集的数据装入实体类实例(一次循环放入一条记录,即一行数据)
            while (res.next()) {
                //声明一个实体类的实例(用于封装数据)
                sinfo.setId(res.getInt("id"));
                sinfo.setStuName(res.getString("SName"));
                sinfo.setSCode(res.getString("SCode"));
                sinfo.setStuAge(res.getInt("SAge"));
                sinfo.setStuSex(res.getString("Sex"));
               

            }
            //三关闭:注意顺序
            res.close();
            ps.close();
            con.close();
        } catch (SQLException sqlE) {
            System.err.println("查询数据出现问题,请检查");
        }
        return sinfo;
    }
}

 

 

JBuider按钮事件

  
 //new出dao类实例
 StuDao sDao = new StuDao();
 //从图形界面获得数据
        String tempId = jTextFieldID.getText();
 //调用方法获得实体类数据
 StudentInfo sinfo = sDao.getStudentInfoByCode(tempId);
 //将实体类的数据显示到界面中
 this.jTextFieldAge.setText(sinfo.getStuAge());
        this.jTextFieldName.setText(sinfo.getStuName());
      

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值