avatar

目录
数据库大作业

准备工作

环境

  • JDK(建议1.8以上)
  • 开发工具,Eclipse或者idea …
  • mysql或者mssql(我是用的mysql5.7.17,给的demo是mysql的)

测试给的Demo

①装好mysql之后启动它,然后用管理工具我用的是navicat,打开然后将给的demo里面的sql脚本导入进去(导入不好的可以手动建立一个,用脚本文件导入后的名字是tb_demo,我这里是手动建的)

mark

最后差不多是这样的结构

②在Eclipse里面import项目,这里我import会有个感叹号,最好重新建一个项目,不然可能会有奇怪的错误下面是如何新建的步骤视频

这里要改的地方就是DbUtil里面数据库配置

public class DbUtil {
    //com.microsoft.sqlserver.jdbc.SQLServerDriver
    //数据库驱动的名字(1.6还是1.8之后就不需要了,这里还是加上吧)
    String driverName = "com.mysql.jdbc.Driver";
    //jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo
    //连接数据库的地址,前面的不用改,这里要改的就是后面的 demo 换成你的数据库名字(我上面的是demo)
    String dbURL = "jdbc:mysql://localhost:3306/demo";
    //你的数据库的帐号
    String userName = "root";
    //装mysql时设置的密码
    String userPwd = "admin"; 

    public Connection getCon() throws ClassNotFoundException, SQLException {
        Class.forName(driverName);
        Connection conn = DriverManager.getConnection(dbURL, userName, userPwd);
        return conn;
    }

    public void closeCon(Connection conn) throws SQLException {
        if (conn != null)
            conn.close();
    }

    public static void main(String[] args) {
        DbUtil dbUtil = new DbUtil();
        try {
            dbUtil.getCon();
            System.out.println("连接成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

    //com.microsoft.sqlserver.jdbc.SQLServerDriver
    //数据库驱动的名字(1.6还是1.8之后就不需要了,这里还是加上吧)
    String driverName = "com.mysql.jdbc.Driver";
    //jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo
    //连接数据库的地址,这里要改的就是后面的 demo 换成你的数据库名字(我上面的是demo)
    String dbURL = "jdbc:mysql://localhost:3306/demo";
    //你的数据库的帐号
    String userName = "root";
    //密码
    String userPwd = "admin"; 

要改的差不多就是这4个配置

①如果是mysql并且版本是8以下的,那么driverName 可以不用改,如果是8以上的(群里面那个是8以上的)就需要改成

com.mysql.cj.jdbc.Driver,并且找到适合版本的驱动拷贝到lib目录然后右键bulidpath(在这之前先将老的驱动删掉,bulidpath的作用是将jar包真正的加到你的项目中去)

  • 8 以上 驱动下载地址 链接:https://pan.baidu.com/s/1WXjAAHX5gQC6v5pfiTOqmQ 提取码:5lf5

  • sqlServer需要改的地方我也注释在上面但是我电脑上没sqlserver我没有测试,老师给的包里面有sqlserver的驱动

dbURL,前面的不用改,这里只需要改一下后面的数据库名字,比如我上面建的数据库名字是demo,后面就应该是/demo(如果用脚本直接导入生成的数据库名字是db_demo,这里就要改成jdbc:mysql://localhost:3306/db_demo

  • 对应sqlserver的我也放在上面但是我没装sqlserver所以没测试。

userName,数据库账号(一般默认就是root)

password,数据库密码

启动

在view包下的MainPage,这是用java的swing组件开发的一个GUI页面,最下面有一个main函数直接启动它就行,(如果有乱码,需要将eclipes的工作空间的编码方式换为utf-8),到此环境就基本ok了,后面的就是写代码的事了。

改用自己的数据库

后面的部分主要是代码的问题了,每个人数据库不同也会有一些差距

  • 导入自己的数据

    数据库名字,字段名不要用中文!

    数据库名字,字段名不要用中文 !

    数据库名字,字段名不要用中文!

  • 实体类改成自己的

import java.util.Date;

public class StuInfo {

    private Long stuId;
    private String stuName;
    private String stuSex;
    private Date stuDob;
    private String stuMajor;

    public Long getStuId() {
        return stuId;
    }

    public void setStuId(Long stuId) {
        this.stuId = stuId;
    }

    public String getStuName() {
        return stuName;
    }

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

    public String getStuSex() {
        return stuSex;
    }

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

    public Date getStuDob() {
        return stuDob;
    }

    public void setStuDob(Date stuDob) {
        this.stuDob = stuDob;
    }

    public String getStuMajor() {
        return stuMajor;
    }

    public void setStuMajor(String stuMajor) {
        this.stuMajor = stuMajor;
    }

    public StuInfo() {

    }

    public StuInfo(String stuName, String stuSex, Date stuDob, String stuMajor) {
        this.stuName = stuName;
        this.stuSex = stuSex;
        this.stuDob = stuDob;
        this.stuMajor = stuMajor;
    }
}

这里实体类是和数据库的表和字段对应的,一个StuInfo对象就对应一条数据。

  • 增删改查的修改

public class UserDao {
    public ResultSet getUsers(User user, Connection con) throws SQLException {
        StringBuffer sql = new StringBuffer("select * from t_user ");
        if (user.getUserName()!= null) {
            sql.append(" where userName like '%"+user.getUserName()+"%'");
        }
        PreparedStatement ps = con.prepareStatement(sql.toString());
        return ps.executeQuery();
    }

    public int delete(User user, Connection con) throws SQLException{
        String sql="delete from t_user where userName='"+user.getUserName()+"'";
        PreparedStatement ps = con.prepareStatement(sql);
        return ps.executeUpdate();
    }

    public int add(User user, Connection con) throws SQLException{
        String sql="insert into t_user  values(?,?)";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, user.getUserName());
        ps.setString(2, user.getTel());
        return ps.executeUpdate();
    }

    public int modify(User user, Connection con) throws SQLException{
        String sql="update t_user  set userName=?, tel=? where userName = '"+user.getUserName()+"'";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, user.getUserName());
        ps.setString(2, user.getTel());
        System.out.println(sql);
        return ps.executeUpdate();
    }
}

最终都是通过调用这个Dao类实现的增删改查。

  • 页面的修改

按照老师的要求是对我们常用的数据库做增删改查,因为我们用的数据库和给的demo的表结构不一样,所以需要修改MainPage,这个是用java的swing写的一个GUI,所以需要改这些界面上的一些元素,我记的好像有个插件可以直接拖动生成swing这些界面的(看见刘勇用过),我对swing不熟悉(早就过时了,没有学的意义),我用web写的界面

mark

Mysql

Mysql5.7解压版的安装和卸载及常见问题

文章作者: imlgw
文章链接: http://imlgw.top/2019/05/20/shu-ju-ku-da-zuo-ye/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 iMlGw0
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论