stu_demo库
数据库实例( schema): 表
数据库相关命名规范:
- 小写字母拼写构成
- 多个单词用_下 划线连接
字符集: utf8
第一步:
sys右键选择Create Schema并设置名字和编码格式,utf8中两个都可,效果如图下显示:
第二步:
图上显示,点击Apply,出现如图下显示,再点击Apply
第三步:
点击Finsh
最终呈现,效果如图下显示:
department表
第一步:
Tables右键选择Create Table,修改名字及里面内容,效果如图显示:
第二步:
图上显示,点击Apply,出现如图下显示,再点击Apply
第三步:
点击Finsh
最终呈现,效果如图下显示:
基本语法结构
Java包命名规范: 全部小写字母拼写,上下层级的包用“.”(点)分割
Java文件命名规范: 单词首字母大写,如果是多个单词,则每个单词的首字母大写
标识符: 包名、类名、变量名以及方法名都被称为标识符
- 以字母、美元符($)、下划线()、数字组成
- 数字不能开头
- 不能是关键字
PS:标识符是大小写敏感的。(见名识意)
包
创建包,如图下显示:
若点击三个点,选择Package Presentation下的Herarchical
效果如图显示:
类
创建TestA类,并添加代码,如下:
//关键字:具有特定功能作用的
//package Java文件所在的全包名;
//全报名:从资源文件夹到Java文件之间完整的包名
//class 类名{类体}
//public 访问限定修饰符
/**
* 实体类
* @author Katrina
*/
public class Test {
//变量
//变量的定义--格式:变量类型 变量名称;
//String:字符串类型
String s1;
String s2 = "kasdfkaskdfh";
//方法(普通方法/标准方法)
//方法定义--格式:返回类型 方法名称(方法参数){方法体}
//void方法返回类型为孔,即方法执行结束后不返回结果
void f1() {
}
String f2() {
String s3 = "aaa";
return s3;
}
void f4(String s) {
}
void f5(String s, String p) {
}
//方法调用--格式:方法名(方法参数);
//方法调用本质:执行所调用的方法体的代码,
//被调用的方法执行结束后,返回到所调用的位置继续执行
void f3() {
f2();
f4("aaa");
}
}
代码部分:
application.properties
#属性名=属性值
#配置程序访问的端口,默认为8080
server.port=8082
# 配置访问的工程名路径,默认为/
server.servlet.context-path=/situ_demo
#//主机名:端口号/数据库实例名
spring.datasource.url=jdbc:mysql://localhost:3306/stu_demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#若使用SQLite数据库,则使用的配置如下
#spring.datasource.url=jdbc:sqlite://d:/DxOffice/sqliteadmin/st_company.s3db
#spring.datasource.driver-class-name=org.sqlite.JDBC
主要修改部分,如红框显示:
DepartmentModel.java
package department;
/**
* 实体类:
* 私有的属性变量
* 公有的属性方法( 空白处Alt+Shift+S,选择Generate Getters and Setters...)
* @author Katrina
*/
//数据库的表结构有对应关系
public class DepartmentModel {
//访问修饰符
private String code;
private String name;
private String tel;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
DepartmentMapper.java
package department;
//导入其他包下的文件 Alt+?
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* interface接口:
* 静态常量:public static final
* 抽象方法:标准方法去掉方法体,加上分号结束;
*
* 数据层--与数据库打交道(SQL)
* 两种技术:
* mybatis (本次使用)
* jdbc--insert into department(code,name,tel) values(?,?,?)
* @author Katrina
*/
//注释 不影响任何代码
//@注解 有实际含义
@Mapper
public interface DepartmentMapper {
//int表示sql执行后影响的记录条数--executeUpdate
@Insert("insert into department(code,name,tel) values(#{code},#{name},#{tel})")
int insert(DepartmentModel model);
@Delete("delete from department where code=#{code}")
int delete(DepartmentModel model);
@Update("update department set name=#{name},tel=#{tel} where code=#{code}")
int update(DepartmentModel model);
@Select("select code,name,tel from department where code=#{code}")
DepartmentModel selectModel(DepartmentModel model);
@Select("select code,name,tel from department where name like #{code}")
List<DepartmentModel> selectList(DepartmentModel model);
}
DepartmentService.java
package department;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 业务层(服务层):使用数据层中提供的功能
* @author Katrina
*/
@Service
public class DepartmentService {
@Autowired
private DepartmentMapper mapper;
public int insert(DepartmentModel model) {
return mapper.insert(model);
}
public int delete(DepartmentModel model) {
return mapper.delete(model);
}
public int update(DepartmentModel model) {
return mapper.update(model);
}
public DepartmentModel selectModel(DepartmentModel model) {
return (DepartmentModel) mapper.selectModel(model);
}
public List<DepartmentModel> selectList(DepartmentModel model) {
return mapper.selectList(model);
}
}
DepartmentController.java
package department;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 控制层:使用业务层中提供的功能方法
* @author Katrina
*/
@RestController
@RequestMapping("department") //不同Controller类上的@RequestMapping的内容不能相同
public class DepartmentController {
@Autowired
DepartmentService service;
@RequestMapping("insert") //同一类中在不同的方法上的@RequestMapping的内容不能相同
public Map<String, Object> insert(DepartmentModel model) {
Map<String, Object> map = new HashMap<>();
map.put("code", service.insert(model));
return map;
}
@RequestMapping("delete")
public Map<String, Object> delete(DepartmentModel model) {
Map<String, Object> map = new HashMap<>();
map.put("code", service.delete(model));
return map;
}
@RequestMapping("update")
public Map<String, Object> update(DepartmentModel model) {
Map<String, Object> map = new HashMap<>();
map.put("code", service.update(model));
return map;
}
@RequestMapping("selectModel")
public Map<String, Object> selectModel(DepartmentModel model) {
Map<String, Object> map = new HashMap<>();
map.put("code", service.selectModel(model));
return map;
}
@RequestMapping("selectList")
public Map<String, Object> selectList(DepartmentModel model) {
Map<String, Object> map = new HashMap<>();
map.put("code", service.selectList(model));
return map;
}
// public int insert(DepartmentModel model) {
// return service.insert(model);
// }
// public int delete(DepartmentModel model) {
// return service.delete(model);
// }
// public int update(DepartmentModel model) {
// return service.update(model);
// }
// public DepartmentModel selectModel(DepartmentModel model) {
// return (DepartmentModel) service.selectModel(model);
// }
// public List<DepartmentModel> selectList(DepartmentModel model) {
// return service.selectList(model);
// }
}