发表于: 2018-01-12 22:50:24
1 686
今日完成
任务一小结
一、任务概述
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风格的实现。
评论