专业实习03(续)

2017-6-21 专业实习第三天

现在开始进入做项目了,大致是一个关于唱片的网站

  • 1.创建web project
    这里写图片描述
    com.lanouMusic.Entity 这是用来存放 数据实体类的 基本上一张表一个类
    com.lanouMusic.Dao 数据访问的对象接口,数据访问层 (放的都是接口)
    com.lanouMusicDao.Impl 数据访问层接口的实现层
    com.lanouMusic.Biz 业务层 需要执行的业务(放的都是接口)
    com.lanouMusicBiz.Impl 业务接口层的实现部分

关于数据库是已经提供了 在SQLyog图形界面中 直接右键 执行SQL语句 导入数据库,先开始对专辑的分类表genrei进行获取 添加 修改 删除

  • 2.在实体包中对genre表的属性 定义变量,然后右键获取set… get…方法
package com.lanouMusic.Entity;

public class Genre {

    private int id;
    private String name;
    private String description ;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }


}
  • 3.数据访问层接口 定义一个BaseDao.java类 连接目标数据库
  • executeQuery() 执行动态的select语句 返回ResultSet实例
  • executeUpdate() 执行动态的INSERT UPDATE DELETE语句 返回int数值
  • closeResource() 释放资源
package com.lanouMusicDao.Impl;

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

public class BaseDao {

    //这样写可以方便之后的修改

    private String ClassName = "com.mysql.jdbc.Driver"; //加载驱动
    private String dburl = "jdbc:mysql://localhost/musicdb";
    private String user = "root";
    private String password = "root";

    private Connection connection;   //与特定的数据库进行连接
    private PreparedStatement statement;  //PreparedStatement执行动态的sql语句  Statement执行静态的sql语句
    private ResultSet resultSet;  //数据表 获得检索结果集

    //创建方法 与数据库建立连接   方便其他时候调用这个链接函数
    //注意方法类型为protected
    protected void openConnection() throws ClassNotFoundException{

            //加载驱动 try/catch 异常
            Class.forName(ClassName);   
            try {
            connection=DriverManager.getConnection(dburl, user, password);


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //查询方法 查询数据库 返回ResultSet实例
    public ResultSet executeQuery(String sql, Object[] parmars) throws SQLException{
        //执行动态查询语句
        statement=connection.prepareStatement(sql);

        if(parmars!=null){
            int i=1;
            for (Object object:parmars) {

                //setObject(i+1,arg[i])用法与setInt(i+1,arg[i]),setString(i+1,arg[i])用法类似,
                //但不需指定参数类型,可以通用;
                //其中,第一个是指你SQL语句中的第几个参数,第二个是要设置的值
                //再向数据库发送时被转换为相应的SQL类型
                statement.setObject(i, object);
                i++;
            }

        }
        resultSet=statement.executeQuery();
        return resultSet;
        }

    //更新方法
    public boolean execute(String sql, Object[] parmars) throws SQLException {
        statement = connection.prepareStatement(sql);
        if (parmars != null) {
            int i = 1;
            for (Object object : parmars) {
                statement.setObject(i, object);
                i++;
            }
        }
        return statement.execute();
    }

    // 释放资源
    public void closeResource(){
        //try/catch异常
        try {
        if (resultSet!=null){
            resultSet.close();
        }

        if (statement!=null) {
            statement.close();
        }
        if (connection!=null) {
            connection.close();
        }
        } catch (Exception e) {
            // TODO: handle exception
        }

    }
}           

  • 4.创建GenreDao 接口类
package com.lanouMusic.Dao;

import java.util.List;

import com.lanouMusic.Entity.Genre;

public interface GenreDao {
    // 获取所有的类别 用一个list对象来保存数据
    public List<Genre> getAll();

    // 添加新的类别 返回结果是添加成功 添加失败 就是boolean
    public boolean addGenre(Genre genre);

    // 删除类别 删除id来删除 操作对象就是id
    public boolean deleteGenre(int genreId);

    // 修改类别 对象就是整个表里的数据 Genre类的对象
    public boolean updateGenre(Genre genre);

}
  • 5.创建接口类的实例化类GenreDaoImpl.class 将从接口继承的方法实例化
package com.lanouMusicDao.Impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.lanouMusic.Dao.GenreDao;
import com.lanouMusic.Entity.Genre;

public class GenreDaoImpl extends BaseDao implements GenreDao{

    @Override
    public List<Genre> getAll() {
        //创建ArrayList 的Genre对象来存放ResultSet的结果
        ArrayList<Genre> genres=new ArrayList<Genre>();

        try {
            openConnection();
            String sql="select * from genre";
            ResultSet resultSet=executeQuery(sql, null);

            while (resultSet.next()) {
                Genre g=new Genre();
                g.setId(resultSet.getInt("id"));//这儿是可以不用区分大小写的 是指表的列名 当然也可以用1表示第一列
                g.setName(resultSet.getString("name"));
                g.setDescription(resultSet.getString("description"));
                //将对象添加到ArrayList的实例中去
                genres.add(g);
            }

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //注意返回值
        return genres;
    }

    @Override
    public boolean addGenre(Genre genre) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean deleteGenre(int genreId) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean updateGenre(Genre genre) {
        // TODO Auto-generated method stub
        return false;
    }

}
  • 6.业务接口层
package com.lanouMusic.Biz;

import java.util.List;

import com.lanouMusic.Entity.Genre;

public interface GenreBiz {
   //这个是业务层  对于专辑Genre 想前台页面只有一个业务 即 显示所有专辑
    // 获取所有的类别 用一个list对象来保存数据
        public List<Genre> getAll();
}
  • 7.业务接口的实现层
package com.lanouMusicBiz.Impl;

import java.util.List;

import com.lanouMusic.Biz.GenreBiz;
import com.lanouMusic.Dao.GenreDao;
import com.lanouMusic.Entity.Genre;
import com.lanouMusicDao.Impl.GenreDaoImpl;

public class GenreBizImpl implements GenreBiz {

    @Override
    public List<Genre> getAll() {
        GenreDao dao = new GenreDaoImpl();
        return dao.getAll();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值