发表于: 2018-01-12 22:50:24

1 688


今日完成

任务一小结

一、任务概述

1.学习java项目基本环境在本地在云服务器的搭建。

2.学习数据库的增删改查操作,学习设计数据库。

3.熟悉从JDBC、DAO、mybatis的开发原理与规范。

4.熟悉spring框架、maven、单步调试,打印日志的基本项目操作。

二、任务知识点回顾

1.SQL基本语句--增删改查

创建:

Create database 数据库名字 charset utf8;

Create table 表名(

字段名字   数据类型

字段名字   数据类型

charset [字符集]

修改:

Rename table 表名1   to   表名

Alter table 表名 add 字段名 数据类型 [列属性] [位置]

Alter table 表名 drop 字段

数据操作:

Insert  into 表名 values (‘字段1’,‘字段2’)[,(多组数据)];

Select * from 表名;

Update 表名 set 字段 = ‘数据’ where name = ‘’;

Delete from 表名 where sex=’male’;

使用navicat连接数据---实现其他数据库操作

2.JDBC的编写规范

2.1原始DAO的书写步骤

(1)首先创建基本的数据库与对应的数据类型的对象。

(2)编写DAO接口,设计实现类实现DAO接口。

(3)重写Dao接口的数据库操作方法。

3.使用mybatis编写原始Dao接口的步骤

(1)新建数据库以及对应的对象类。

(2)配置sqlmapconfig.xml的配置文件。--加载配置文件

(3)配置对象的xxx.xml的配置文件。--配置namecpace id(statement 的ID)resulttype(返回结果的对象类型)

4.使用mabatis编写mapper接口。

(1)创建mapper接口;

(2)编写mapper.xml

(3)mapper.xml的namespace命名空间 指定为mapper接口的全限定名

(4)mapper.java 中的方法名与 xxmapper.xml的 statement 的 id 一样

(5)将userMapper.xml 配置到sqlMapperconfig.xml中。

5.学习单步调试、单元测试、并能够使用单步调试查看运行变量值。

6.简单了解Spring控制反转与注入的实现与配置。

7.linux的简单操作

三、基本结构

Mapper接口


public interface StudentMapper {

// 查找所有学生
   @Select("select * from students")
@Results(value = {
@Result(id=true, column="id", property="id"),
@Result(column="name", property = "name"),
@Result(column = "stu_id", property = "stuId"),
@Result(column = "create_at", property = "createAt"),
@Result(column = "update_at", property = "updateAt")
})
List<Student> findAllStudents();

// 通过id查找学生
   @Select("select id as id, name, stu_id, create_at, update_at from students where id = #{id}")
Student findStudentById(Long id);

// 通过姓名查找学生
   @Select("select id as id, name, stu_id, create_at, update_at from students where name = #{name}")
Student findStudentByName(String name);

//通过学号查找学生
   @Select("select id as id, name, stu_id, create_at, update_at from students where stu_id = #{stu_id}")
Student findStudentByStuId(Long stuId);

// 添加学生
   @Insert("insert  into students(id, name, stu_id, create_at, update_at) values(#{id},#{name},#{stuId},#{createAt},#{updateAt})")
@Options(useGeneratedKeys=true, keyProperty="id")
void insertStudent(Student student);

// 更新学生

   @Update("update students set name=#{name},stu_id=#{stuId},create_at=#{createAt},update_at=#{updateAt} where id=#{id}")
void updateStudent(Student student);


// 删除学生
   @Delete("delete from students where id = #{id}")
int deleteStudentById(Long id);

实现类——Studentservice

package com.jnshu.task1.services;

import com.jnshu.task1.domain.Student;
import com.jnshu.task1.mappers.StudentMapper;
import com.jnshu.task1.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

public class StudentService {

private Logger logger = LoggerFactory.getLogger(getClass());
// 查找所有学生
   public List<Student> findAllStudent(){
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try{
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
return studentMapper.findAllStudents();
}finally {
sqlSession.close();
}
}
// 通过ID查找学生
   public Student findStudentById(Long id){
logger.debug("通过ID查找学生 :{}", id);
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try{
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
return studentMapper.findStudentById(id);
//return sqlSession.selectOne("com.Jnshu.task1.StudentMapper.findStudentById",id);
       }finally {
sqlSession.close();
}
}

// 通过姓名查找学生
   public Student findStudentByName(String name){
logger.debug("通过姓名查找学生 :{}", name);
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try{
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
return studentMapper.findStudentByName(name);
//return sqlSession.selectOne("com.Jnshu.task1.StudentMapper.findStudentByName",id);
       }finally {
sqlSession.close();
}
}

// 通过学号查找学生
   public Student findStudentByStuId(Long stuId){
logger.debug("通过学号查找学生 :{}", stuId);
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try{
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
return studentMapper.findStudentByStuId(stuId);
//return sqlSession.selectOne("com.Jnshu.task1.StudentMapper.findStudentByStuId",id);
       }finally {
sqlSession.close();
}
}

// 添加学生
   public Student createStudent(Student student){
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
studentMapper.insertStudent(student);
sqlSession.commit();
return student;
}catch (Exception e) {
sqlSession.rollback();
e.printStackTrace();
throw new RuntimeException(e.getCause());
}
finally {
sqlSession.close();
}
}
// 修改学生
   public Student updateStudent(Student student){
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
studentMapper.updateStudent(student);
sqlSession.commit();
return student;
}catch (Exception e) {
sqlSession.rollback();
e.printStackTrace();
throw new RuntimeException(e.getCause());
}
finally {
sqlSession.close();
}
}
// 删除学生

   public boolean deleteStudentById(Long id){

SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try{
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
int count = studentMapper.deleteStudentById(id);
sqlSession.commit();
return count > 0;

}catch (Exception e) {
sqlSession.rollback();
e.printStackTrace();
throw new RuntimeException(e.getCause());
}
finally {
sqlSession.close();
}


}


}

(具体代码提交到了github上)。

四、任务体会

在这一个月的时间里,学习很多基础知识,但是也知道这些基础知识现在都是一些皮毛,以后的路还很长,基础的补充与不断学习的心态应该才是这条路上最重要的。

明日计划

继续理解任务二中的springmvc和restful风格的实现。




返回列表 返回列表
评论

    分享到