发表于: 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,注意遵守命名规范。
查阅插入时间戳时,解决了昨天的问题:将时间转为时间戳存入数据库时,会自动变成UTC时区,当从数据库查询该时间戳时,会转换为本地时区,规避了世界的时区问题。将日期转化为时间戳格式使用
UNIX_TIMESTAMP(now())*1000
有如下属性:
private String name;
private String qq;
private String major;
private int start_date;
private String school;
private String onlineclass;
private String onlineno;
private String diarylink;
private String aim;
private String recommender;
private String censor;
private String wherefrom;
和数据库一一对应,并且对属性进行了封装,写了一个有参构造。
然后编写DAO接口,提供crud四个方法
public interface DAO {
//增删改
public void add(Student student);
public void update(Student student);
public void delete(Student student);
//查
public Student get(String name);
}
通过搜索引擎找到将MySQL驱动导入Maven项目的方法:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
编写实现类:
public class studentDao implements DAO{
public studentDao() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection() throws SQLException{
return DriverManager.getConnection("jdbc:mysql://localhost:3306/学员报名?characterEncoding=UTF-8","root","admin");
}
public boolean add(Student student) {
//增
boolean flag = false;
String sql = "insert into signup values(UNIX_TIMESTAMP(now())*1000,UNIX_TIMESTAMP(now())*1000,null,?,?,?,?,?,?,?,?,?,?,?,?)";
try(
//try-resource-catch
Connection c = getConnection();
PreparedStatement ps = c.prepareStatement(sql);
){
//添加参数
ps.setString(1, student.getName());
ps.setString(2, student.getQq());
ps.setString(3, student.getMajor());
ps.setInt(4, student.getStart_date());
ps.setString(5, student.getSchool());
ps.setString(6, student.getOnlineclass());
ps.setString(7, student.getOnlineno());
ps.setString(8, student.getDiarylink());
ps.setString(9, student.getAim());
ps.setString(10, student.getRecommender());
ps.setString(11, student.getCensor());
ps.setString(12, student.getWherefrom());
ps.execute();
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()){
flag = true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
}
今天时间有限,只写了添加的方法。
将初始化Connection写入构造方法,实现实例化即运行的目的。
明日目标:
完善删改查的方法,并且编写运行类。
- 18.学习Junit,并尝试写自己的第一个单元测试,记着要写在自己的src/main/test下。
- 19.学习Spring,配置Spring和Junit
- 20.编写单元测试的代码,注意,你也可以尝试一下,先写单元测试的代码,再写接口,再写实现类。
- 21.查看日志,并转成Debug模式,练习调试,学会查看单步执行时的变量值。
遇到的问题:
暂时没有问题。
收获:
成功集成了Maven到Eclipse,编写了DAO的接口以及实现类,并且完成了增加的方法。
评论