集成:
1.创建实体类,包含基本的用户对象信息。User
id | 主键id |
name | 用户名 |
organ | 组织 |
表设计的很烂。
2.引入必要的包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
<scope>runtime</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.分层dao,service,controller
Dao层写好接口,通过mapper注解来映射到mapper.xml
@Mapper
public interface UserDao {
List<User> findAllUser();
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int addUser(User user);
int deleteUserById(int id);
int updateUserById(User user);
User findUserByName(String name);
}
userMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.custom.organ.core.dao.UserDao">
<select id="findAllUser" resultType="com.custom.organ.core.model.User">
SELECT * FROM user_name_config
</select>
<delete id="deleteUserById" parameterType="int">
DELETE FROM user_name_config WHERE id=#{id}
</delete>
<insert id="addUser" parameterType="com.custom.organ.core.model.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO user_name_config(name) VALUES (#{name})
</insert>
<update id="updateUserById" parameterType="com.custom.organ.core.model.User">
UPDATE user_name_config SET name=#{name},organState=#{organState} WHERE id=#{id}
</update>
<select id="findUserByName" parameterType="String" resultType="com.custom.organ.core.model.User">
SELECT * FROM user_name_config WHERE name=#{name}
</select>
</mapper>
问题:
1.前端调用后端提供的接口,会存在跨域问题;
解决:在接口上使用@CrossOrigin注解;
2.使用list.toString获得数组,没法转换回list;
解决:list的toString是有问题的。不要用。改用JSONArray来存取数组变量。
3:.mapper.xml文件目录和model文件目录的指定
解决:配置application.yml
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.custom.organ.core.model