下面是关于“spring+springmvc+mybatis 开发JAVA单体应用”的完整攻略:
一、前置知识
在开始之前,需要掌握以下技术:
- Java基础知识;
- SQL语言基础;
- Spring框架基础知识;
- Spring MVC框架的基础知识;
- MyBatis框架基础。
如果你已经掌握了以上技术,那么你就可以继续阅读该攻略。
二、搭建环境
1. 安装JDK和Maven
根据自己的操作系统选择适合的JDK版本,并安装好Maven。
2. 配置Maven
配置Maven的settings.xml文件,指定仓库地址和代理等信息。
3. 创建项目
使用Maven命令创建一个Maven项目。
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-webapp
4. 添加依赖
添加spring、springmvc和mybatis的依赖,可以使用Maven的依赖管理工具,也可以手动添加到pom.xml文件中。
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
</dependencies>
5. 配置Spring、Spring MVC和MyBatis
配置spring、spring-mvc和mybatis的配置文件,可以使用XML配置,也可以使用注解方式配置。
在web.xml文件中配置DispatcherServlet并指定Spring MVC配置文件的位置。
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/spring-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
三、开始编写代码
1. 编写POJO类
编写与数据库表对应的POJO类,例如:
public class User {
private Long id;
private String username;
private String password;
// getter and setter
}
2. 编写Mapper接口和对应的Mapper XML文件
创建Mapper接口,并与对应的Mapper XML文件关联。
public interface UserMapper {
User getUserById(Long id);
}
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="java.lang.Long" resultMap="userResultMap">
SELECT *
FROM user
WHERE id = #{id}
</select>
<resultMap id="userResultMap" type="com.example.model.User">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="password" column="password" />
</resultMap>
</mapper>
3. 编写Service类
编写Service类,调用Mapper接口中的方法,例如:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(Long id) {
return userMapper.getUserById(id);
}
}
4. 编写Controller类
编写Controller类,处理请求并响应数据,例如:
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.GET, value = "/{id}")
@ResponseBody
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
}
四、运行测试
启动应用程序,在浏览器中访问http://localhost:8080/users/1,看到返回的用户信息是否正确。
五、示例说明
以下是示例说明:
示例一:新增用户
public interface UserMapper {
void addUser(User user);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
}
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.POST, value = "")
@ResponseStatus(HttpStatus.CREATED)
public void addUser(@RequestBody User user) {
userService.addUser(user);
}
}
示例二:修改用户密码
public interface UserMapper {
void updateUserPassword(@Param("id") Long id, @Param("password") String password);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void updateUserPassword(Long id, String password) {
userMapper.updateUserPassword(id, password);
}
}
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.PUT, value = "/{id}/password")
public void updateUserPassword(@PathVariable Long id, @RequestParam String password) {
userService.updateUserPassword(id, password);
}
}
这些示例演示了如何编写处理不同类型请求的Controller方法,以及如何使用Mapper接口中的方法操作数据库。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring+springmvc+mybatis 开发JAVA单体应用 - Python技术站