最近有一个需求写Java后台,所以就重新拾回我那一丁点的Java基础
打开Idea新建项目
选择Spring Initializr,jdk选择1.8
点击下一步
编写包名以及编写者
Artifact: 编写者、group: 包名
这里采用了mybatis + mysql,web处勾选web
导入相关依赖在pom.xml里操作
添加resources(在build里面)
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
将resources下的application.prop…删除,添加application.yaml文件
星号部分需替换
spring datasource url jdbc mysql //localhost 3306/*yourdatabase*?useSSL=false username*yourusername* password*yourpassword* driver-class-name com.mysql.jdbc.Driver mybatis mapperLocations classpath mapper/*Mapper.xml server port9008
在main下创建entity/controller/services/mapper四个文件夹
entity: 和数据库表一一对应字段
controller: 暴露给外部的api接口
services: 对数据进行一些处理的地方
mapper: 对应mybatis mapper下的xml文件
在resources文件夹下添加mapper文件夹
这里是mabatis的一些对数据库表映射的xml
a.xml
需要注意的是,namespace和每个单独的inserct或者select的parameterType/resultType要和类名一一对应
ID要和mapper下的类方法名一一对应
<mapper namespace="com.market.frank.mapper.AdminMapper"> <!--<insert id="insertSelective" parameterType="com.market.frank.entity.Person">--> <!--INSERT INTO person--> <!--<trim prefix="(" suffix=")" suffixOverrides=",">--> <!--<if test="age != null">--> <!--age,--> <!--</if>--> <!--<if test="name != null and name != ''">--> <!--name,--> <!--</if>--> <!--</trim>--> <!--<trim prefix="VALUES (" suffix=")" suffixOverrides=",">--> <!--<if test="age != null">--> <!--#{age},--> <!--</if>--> <!--<if test="name != null and name != ''">--> <!--#{name},--> <!--</if>--> <!--</trim>--> <!--</insert>--> <insert id="insertNormal" parameterType="com.market.frank.entity.Admin" > INSERT INTO admin <trim prefix="(" suffix=")" suffixOverrides=","> phone,password, <if test="name != null"> name, </if> <if test="state != null"> state, </if> </trim> <trim prefix="VALUES (" suffix=")" suffixOverrides=","> #{phone},#{password}, <if test="name != null"> #{name}, </if> <if test="state != null"> #{state} </if> </trim> </insert> <select id="isExist" resultType="com.market.frank.entity.Admin" parameterType="com.market.frank.entity.Admin"> SELECT * FROM admin <trim prefix="WHERE"> <if test="phone != null"> phone = #{phone} </if> <if test="password != null and password.length()>0"> AND password = #{password} </if> </trim> </select> <update id="update" parameterType="com.market.frank.entity.Admin"> UPDATE admin <trim prefix="SET" suffixOverrides=","> <if test="phone != null and phone.length() == 11"> phone = #{phone} </if> <if test="password != null and password.length() >0"> password = #{password} </if> <if test="name != null and name.length() > 0"> name = #{name} </if> </trim> </update> <select id="selectAll" resultType="com.market.frank.entity.Admin"> SELECT * FROM admin WHERE state != 404 </select> <!--<select id="selectAllNonM" resultType="com.market.frank.entity.Admin">--> <!----> <!--</select>--> </mapper>
编写mapper下的文件
其实就是和resources下的xml一一对应
import java.util.List; public interface AdminMapper { public List<Admin> selectAll(); public Admin isExist(Admin admin); public int insertNormal(Admin admin); public int updateNormal(Admin admin); }
编写entity的实体类
字段必须和数据库里的表字段一一对应
public class Admin { private long id; private String account; private String phone; private String password; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
编写service下的文件
adminService(service/AdminService)
import java.util.List; public interface AdminService { public Admin login(Admin admin); public int insertNormal(Admin admin); public int updateNormal(Admin admin); public List<Admin> selectAll(); }
AdminServiceImpl(service/impl/AdminServiceImpl)
import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; public class AdminServiceImpl implements AdminService { private AdminMapper adminMapper; public Admin login(Admin admin) { return adminMapper.isExist(admin); } public int insertNormal(Admin admin) { return adminMapper.insertNormal(admin); } public int updateNormal(Admin admin) { return adminMapper.updateNormal(admin); } public List<Admin> selectAll() { return adminMapper.selectAll(); } }
编写controller下的文件
AdminController
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; ("/api/admin/") public class AdminController { private AdminService adminService; /* * @function * @api * @params null * @return admin list * */ (value = "all", method = RequestMethod.GET) public Object onAll() { List list = adminService.selectAll(); return list; } }
接下来就可以点击右上角的绿色小三角运行项目拉。
输入localhost:9008/api/admin/all你就可以得到数据库里的数据啦
到这里你就已经成功运行起来了一个mybatis + spring boot + mysql集成的Java项目