- Spring Boot 实战构建支教信息平台-第二章 整合Myb
- Spirng Boot整合Mybatis实现增删改查案例
- Spring Boot学习笔记(五)整合MyBatis实现数据库
- Spring Boot 实战构建支教信息平台-第三章 整合Thy
- Spring Boot实战(三):Spring Boot使用Sp
- Spring Boot入门实践02--整和mybatis
- Spring boot学习(五)Spring boot整合Myb
- Spring Boot实战(二):Spring Boot连接My
- JavaWeb项目整合Spring,SpringMVC,Myba
- Spring Boot 实战构建支教信息平台-第一章 Hello
一、简介
Spring Boot真的是一个很爽的东西,相比于以前的Spring项目,我们少了大量的繁琐配置,像上一章一样,我们很快的就能运行起来并输出一个Hello world。那么这章我们来连接数据库,并将我们数据库中的内容输出。其实这些内容得益于Spring Boot的强大,几个钟头就能迅速搭建起一个web应用,但是我每天的空闲时间也不多,丧。。。慢慢来嘛。
二、整合Mybatis
要连接数据库那我们得先把我们的数据库搭起来嘛,这里我们选择使用Mysql。
我们可以去登陆官网下载Mysql
安装教程可以参照这里
另一种更加简单的方式就是我们直接安装XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。
下载地址
Windows下直接运行EXE一切就帮你弄好了
安装好以后我们打开控制面板
点击Start启动我们的MySQL,数据库的管理我们可以用自带的phpMyAdmin,也可以选择其他的数据库管理工具,比如Navicat,我们这里直接用phpMyAdmin就好了。
启动Apache 和 Mysql 效果如下:
根据自己设置的端口号我这里是8080在浏览器输入 localhost:8080/phpmyadmin/ 就可以看到我们的phpMyAdmin了效果如下图
新建一个数据库,名字随便取,用作我们的数据存放点
那么支教平台我们需要设计一个什么样的表呢?
我们可以去现有的支教网站上去看一看,我们可以登陆中华支教与助学信息中心看一看,支教信息需要那些东西
首先我们需要一个用户表,这个表设计很简单,按自己需求进行设计
然后是支教信息的表设计,按照中华支教与助学信息中心的格式我大概设计成这个样子
创建表的sql
CREATE TABLE `supportinfo` (
`sid` int(10) UNSIGNED NOT NULL,
`title` varchar(60) NOT NULL COMMENT '标题',
`orgintro` text NOT NULL COMMENT '组织简介',
`ddl` date NOT NULL COMMENT '报名截止时间',
`servel` varchar(25) NOT NULL COMMENT '服务时间',
`des` varchar(20) NOT NULL COMMENT '支教地点',
`reqnum` int(11) NOT NULL COMMENT '招募人数',
`job` text NOT NULL COMMENT '工作内容',
`salary` text NOT NULL COMMENT '待遇',
`requir` text NOT NULL COMMENT '报名条件',
`contact` text NOT NULL COMMENT '联系方式',
`uid` int(11) NOT NULL,
`pic` varchar(100) NOT NULL COMMENT '图片',
`ptime` datetime DEFAULT CURRENT_TIMESTAMP,
`suptype` varchar(20) NOT NULL COMMENT '支教类型'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
好了暂时先设计这两张表,数据库先放到一边,我们将关注点转移到我们的项目上
首先将我们前一章在pom.xml中注释的那几行还原,为了连接到MySQL数据库我们还需要加上:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
然后为了调试的方便,再加上
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
接下来写配置文件,打开application.properties修改数据源配置,如下
#服务器端口
server.port = 80
#数据源设置
spring.datasource.url=jdbc:mysql://localhost:3306/【你的数据库名称】?characterEncoding=utf8
spring.datasource.username=你的数据库用户名
spring.datasource.password=你的数据库密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.typeAliasesPackage=com.Teach.support.model
mybatis.mapperLocations=classpath:mapper/*.xml
- mybatis.typeAliasesPackage:为实体对象所在的包,跟数据库表一一对应
- mybatis.mapperLocations:mapper文件的位置
好回到我们的Src目录下,新建几个package
- Mapper
- Model
- Service
-
ServiceImpl
项目结构如下:
j10.PNG
首先User.java 代码,各个变量的名称和类型根据自己设计的表修改,这里放出我的User:
public class User {
private Integer uid;
private String uname;
private String password;
private String phone;
private String email;
private Date rtime;
private String nickname;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname == null ? null : uname.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone == null ? null : phone.trim();
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
public Date getRtime() {
return rtime;
}
public void setRtime(Date rtime) {
this.rtime = rtime;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname == null ? null : nickname.trim();
}
}
接下来是我们的额最重要的SupportInfo:
public class SupportInfo {
private Integer sid;
private String title;
private Date ddl;
private String servel;
private String des;
private Integer reqnum;
private Integer uid;
private String pic;
private Date ptime;
private String suptype;
private String orgintro;
private String job;
private String salary;
private String requir;
private String contact;
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title == null ? null : title.trim();
}
public Date getDdl() {
return ddl;
}
public void setDdl(Date ddl) {
this.ddl = ddl;
}
public String getServel() {
return servel;
}
public void setServel(String servel) {
this.servel = servel == null ? null : servel.trim();
}
public String getDes() {
return des;
}
public void setDes(String des) {
this.des = des == null ? null : des.trim();
}
public Integer getReqnum() {
return reqnum;
}
public void setReqnum(Integer reqnum) {
this.reqnum = reqnum;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic == null ? null : pic.trim();
}
public Date getPtime() {
return ptime;
}
public void setPtime(Date ptime) {
this.ptime = ptime;
}
public String getSuptype() {
return suptype;
}
public void setSuptype(String suptype) {
this.suptype = suptype == null ? null : suptype.trim();
}
public String getOrgintro() {
return orgintro;
}
public void setOrgintro(String orgintro) {
this.orgintro = orgintro == null ? null : orgintro.trim();
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job == null ? null : job.trim();
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary == null ? null : salary.trim();
}
public String getRequir() {
return requir;
}
public void setRequir(String requir) {
this.requir = requir == null ? null : requir.trim();
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact == null ? null : contact.trim();
}
}
今天我们还用不到User,先来看SupportInfoMapper,对于一些简单的sql查询,我们可以直接通过注解的方式实现而不需要单独去写xml
public interface SupportInfoMapper {
@Select({
"select",
"sid, title, ddl, servel, des, reqnum, uid, pic, ptime, suptype, orgintro, job, ",
"salary, requir, contact",
"from supportinfo",
"where sid = #{sid,jdbcType=INTEGER}"
})
@Results({
@Result(column="sid", property="sid", jdbcType=JdbcType.INTEGER, id=true),
@Result(column="title", property="title", jdbcType=JdbcType.VARCHAR),
@Result(column="ddl", property="ddl", jdbcType=JdbcType.DATE),
@Result(column="servel", property="servel", jdbcType=JdbcType.VARCHAR),
@Result(column="des", property="des", jdbcType=JdbcType.VARCHAR),
@Result(column="reqnum", property="reqnum", jdbcType=JdbcType.INTEGER),
@Result(column="uid", property="uid", jdbcType=JdbcType.INTEGER),
@Result(column="pic", property="pic", jdbcType=JdbcType.VARCHAR),
@Result(column="ptime", property="ptime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="suptype", property="suptype", jdbcType=JdbcType.VARCHAR),
@Result(column="orgintro", property="orgintro", jdbcType=JdbcType.LONGVARCHAR),
@Result(column="job", property="job", jdbcType=JdbcType.LONGVARCHAR),
@Result(column="salary", property="salary", jdbcType=JdbcType.LONGVARCHAR),
@Result(column="requir", property="requir", jdbcType=JdbcType.LONGVARCHAR),
@Result(column="contact", property="contact", jdbcType=JdbcType.LONGVARCHAR)
})
SupportInfo selectByPrimaryKey(Integer sid);
}
接下来实现我们的Service,打开SupportInfoService.java 写入:
public interface SupportInfoService {
public SupportInfo GetByPrimartKey(Integer id);
}
接着打开SupportInfoServiceImpl进行实现:
@Service
public class SupportInfoServiceImpl implements SupportInfoService {
@Autowired
SupportInfoMapper Simpper;
@Override
public SupportInfo GetByPrimartKey(Integer id) {
SupportInfo Si = Simpper.selectByPrimaryKey(id);
return Si;
}
}
-
@Autowired 自动注入,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作
然后打开MainController,新增我们的Controller
@RestController
public class MainController {
@Autowired
SupportInfoService SIService;
@RequestMapping("/")
public String HelloWorld()
{
return "Hello world!";
}
@RequestMapping("/s")
public SupportInfo getInfo(){
return SIService.GetByPrimartKey(41);
}
}
最后打开supportApplication.java 在上方添加注解
-
@MapperScan("com.Teach.support.Mapper")
就是你设定的Mapper文件的包地址
好了,大功告成,点击启动
在浏览器输入localhost/s
得到:
j11.PNG
PS: 别忘了在数据库中添加内容,数据库没有东西,你当然也得不到东西
好了,我们的项目框架已经搭建好了,接下来就是扩展和优化了,以及制作我们的视图(View)