发表于: 2017-04-29 14:39:50

1 1251


昨日回顾:建立了本任务所需要的表,对数据库有了初步的理解。

今日目标:在本地搭建好项目并且进行测试通过。


  • 12.下载Java 7,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中。
  • 13.下载Maven3,并配置好环境变量。
  • 14.下载Eclipse或者是IDEA,配置好Maven。IDEA不用配置Maven,Eclipse也分自带或者外部,推荐使用外部Maven。
  • 15.创建一个新的maven项目
由于具有j2se基础,12/13/14/15已经完成。

JDK和JRE的区别个人认为是:JDK在JRE的基础上增加了用于编译和打包java代码的程序,而这些程序也是用java写的,因此JDK会内置一份JRE。

使用Eclipse创建Maven项目时,没有发现选择内、外部Maven的选项,也(在搜索中了解到,位于Window-Preferences-Maven中)不知道Archetype如何选择,根据后面部署上云服务器的任务,我选择了webapp。 发现并不是做网站后台,删除项目,重新创建时选择了quickstart。

  • 16.在src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。

CSDN的文章中学会将m2e集成进Eclipse。


由于创建了webapp,打包出来的是.war包,不知是否会影响后续任务。


修改为quickstart之后打包成功。

  • 17.编写DAO,注意写清楚Interface和Impl,注意遵守命名规范。
疑问:这里直接编写DAO,不用写实体类用于存储每个学员么?


查阅插入时间戳时,解决了昨天的问题:将时间转为时间戳存入数据库时,会自动变成UTC时区,当从数据库查询该时间戳时,会转换为本地时区,规避了世界的时区问题。将日期转化为时间戳格式使用

UNIX_TIMESTAMP(now())*1000
编写了存储Student的Bean。

有如下属性:

  1. private String name;
  2. private String qq;
  3. private String major;
  4. private int start_date;
  5. private String school;
  6. private String onlineclass;
  7. private String onlineno;
  8. private String diarylink;
  9. private String aim;
  10. private String recommender;
  11. private String censor;
  12. private String wherefrom;


和数据库一一对应,并且对属性进行了封装,写了一个有参构造。

然后编写DAO接口,提供crud四个方法

  1. public interface DAO {
  2.    //增删改
  3.    public void add(Student student);    
  4.    public void update(Student student);    
  5.    public void delete(Student student);    
  6.    //查
  7.    public Student get(String name);    
  8. }

通过搜索引擎找到将MySQL驱动导入Maven项目的方法:

  1.    <dependency>
  2.    <groupId>mysql</groupId>
  3.    <artifactId>mysql-connector-java</artifactId>
  4.    <version>5.1.25</version>
  5.    </dependency>

编写实现类:

  1. public class studentDao implements DAO{
  2.    public studentDao() {
  3.        try {
  4.            Class.forName("com.mysql.jdbc.Driver");
  5.        } catch (ClassNotFoundException e) {
  6.            // TODO Auto-generated catch block
  7.            e.printStackTrace();
  8.        }
  9.    }
  10.    public Connection getConnection() throws SQLException{
  11.        return DriverManager.getConnection("jdbc:mysql://localhost:3306/学员报名?characterEncoding=UTF-8","root","admin");
  12.    }
  13.    public boolean add(Student student) {
  14.        //增
  15.        boolean flag = false;
  16.        String sql = "insert into signup values(UNIX_TIMESTAMP(now())*1000,UNIX_TIMESTAMP(now())*1000,null,?,?,?,?,?,?,?,?,?,?,?,?)";
  17.        try(
  18.        //try-resource-catch
  19.                Connection c = getConnection();
  20.                PreparedStatement ps = c.prepareStatement(sql);
  21.            ){
  22.        //添加参数
  23.            ps.setString(1, student.getName());
  24.            ps.setString(2, student.getQq());
  25.            ps.setString(3, student.getMajor());
  26.            ps.setInt(4, student.getStart_date());
  27.            ps.setString(5, student.getSchool());
  28.            ps.setString(6, student.getOnlineclass());
  29.            ps.setString(7, student.getOnlineno());
  30.            ps.setString(8, student.getDiarylink());
  31.            ps.setString(9, student.getAim());
  32.            ps.setString(10, student.getRecommender());
  33.            ps.setString(11, student.getCensor());
  34.            ps.setString(12, student.getWherefrom());
  35.            ps.execute();
  36.            ResultSet rs = ps.getGeneratedKeys();
  37.            if(rs.next()){
  38.                flag = true;
  39.            }
  40.        } catch (SQLException e) {
  41.            // TODO Auto-generated catch block
  42.            e.printStackTrace();
  43.        }
  44.        return flag;
  45.    }
  46. }


今天时间有限,只写了添加的方法。

将初始化Connection写入构造方法,实现实例化即运行的目的。


明日目标:

完善删改查的方法,并且编写运行类。

  • 18.学习Junit,并尝试写自己的第一个单元测试,记着要写在自己的src/main/test下。
  • 19.学习Spring,配置Spring和Junit
  • 20.编写单元测试的代码,注意,你也可以尝试一下,先写单元测试的代码,再写接口,再写实现类。
  • 21.查看日志,并转成Debug模式,练习调试,学会查看单步执行时的变量值。

遇到的问题:

暂时没有问题。


收获:


成功集成了Maven到Eclipse,编写了DAO的接口以及实现类,并且完成了增加的方法。





返回列表 返回列表
评论

    分享到