springBoot 整合mybatis
配置pom
< project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0.0< /modelVersion>
< parent>
< groupId> org.springframework.boot< /groupId>
< artifactId> spring-boot-starter-parent< /artifactId>
< version> 1.5.15.RELEASE< /version>
< /parent>
< groupId> com.bjsxt< /groupId>
< artifactId> 12-spring-boot-springmvc-mybatis< /artifactId>
< version> 0.0.1-SNAPSHOT< /version>
< properties>
< java.version> 1.8< /java.version>
< thymeleaf.version> 3.0.2.RELEASE< /thymeleaf.version>
< thymeleaf-layout-dialect.version> 2.0.4< /thymeleaf-layout-dialect.version>
< /properties>
< dependencies>
< ! -- springBoot的启动器 -->
< dependency>
< groupId> org.springframework.boot< /groupId>
< artifactId> spring-boot-starter-web< /artifactId>
< /dependency>
< ! -- web启动器 -->
< dependency>
< groupId> org.springframework.boot< /groupId>
< artifactId> spring-boot-starter-thymeleaf< /artifactId>
< /dependency>
< ! -- Mybatis启动器 -->
< dependency>
< groupId> org.mybatis.spring.boot< /groupId>
< artifactId> mybatis-spring-boot-starter< /artifactId>
< version> 1.1.1< /version>
< /dependency>
< ! -- mysql数据库驱动 -->
< dependency>
< groupId> mysql< /groupId>
< artifactId> mysql-connector-java< /artifactId>
< /dependency>
< ! -- druid数据库连接池 -->
< dependency>
< groupId> com.alibaba< /groupId>
< artifactId> druid< /artifactId>
< version> 1.0.9< /version>
< /dependency>
< /dependencies>
< ! -- 加载资源-->
< build>
< resources>
< resource>
< directory> src/main/java< /directory>
< includes>
< include> **/*.xml< /include>
< /includes>
< /resource>
< resource>
< directory> src/main/resources< /directory>
< includes>
< include> **/*< /include>
< /includes>
< /resource>
< /resources>
< /build>
< /project>
创建启动类
@SpringBootApplication
@MapperScan( "com.bjsxt.mapper" ) //@MapperScan 用户扫描MyBatis的Mapper接口
public class App {
public static void main( String[ ] args) {
SpringApplication.run( App.class, args) ;
}
}
配置application.properties
spring.datasource.driverClassName= com.mysql.jdbc.Driver
spring.datasource.url= jdbc:mysql://localhost:3306/ssm
spring.datasource.username= root
spring.datasource.password= root
spring.datasource.type= com.alibaba.druid.pool.DruidDataSource
mybatis.type-aliases-package= com.bjsxt.pojo
编写java bean
public class Users {
private Integer id ;
private String name;
private Integer age;
public Integer getId( ) {
return id ;
}
public void setId( Integer id) {
this.id = id ;
}
public String getName( ) {
return name;
}
public void setName( String name) {
this.name = name;
}
public Integer getAge( ) {
return age;
}
public void setAge( Integer age) {
this.age = age;
}
}
编写控制层
@Controller
@RequestMapping( "/users" )
public class UsersController {
@Autowired
private UsersService usersService;
/**
* 页面跳转
*/
@RequestMapping( "/{page}" )
public String showPage( @PathVariable String page) {
return page;
}
/**
* 添加用户
*/
@RequestMapping( "/addUser" )
public String addUser( Users users) {
this.usersService.addUser( users) ;
return "ok" ;
}
/**
* 查询全部用户
*/
@RequestMapping( "/findUserAll" )
public String findUserAll( Model model) {
List< Users> list = this.usersService.findUserAll( ) ;
model.addAttribute( "list" , list) ;
return "showUsers" ;
}
/**
* 根据用户id查询用户
*/
@RequestMapping( "/findUserById" )
public String findUserById( Integer id,Model model) {
Users user = this.usersService.findUserById( id) ;
model.addAttribute( "user" , user) ;
return "updateUser" ;
}
/**
* 更新用户
*/
@RequestMapping( "/editUser" )
public String editUser( Users users) {
this.usersService.updateUser( users) ;
return "ok" ;
}
/**
* 删除用户
*/
@RequestMapping( "/delUser" )
public String delUser( Integer id) {
this.usersService.deleteUserById( id) ;
return "redirect:/users/findUserAll" ;
}
}
编写service接口
public interface UsersService {
void addUser( Users users) ;
List< Users> findUserAll( ) ;
Users findUserById( Integer id) ;
void updateUser( Users users) ;
void deleteUserById( Integer id) ;
}
编写serviceImpl实现类
@Service
@Transactional
public class UsersServiceImpl implements UsersService {
@Autowired
private UsersMapper usersMapper;
@Override
public void addUser( Users users) {
this.usersMapper.insertUser( users) ;
}
@Override
public List< Users> findUserAll( ) {
return this.usersMapper.selectUsersAll( ) ;
}
@Override
public Users findUserById( Integer id) {
return this.usersMapper.selectUsersById( id) ;
}
@Override
public void updateUser( Users users) {
this.usersMapper.updateUser( users) ;
}
@Override
public void deleteUserById( Integer id) {
this.usersMapper.deleteUserById( id) ;
}
}
编写usersMapper接口
public interface UsersMapper {
void insertUser( Users users) ;
List< Users> selectUsersAll( ) ;
Users selectUsersById( Integer id) ;
void updateUser( Users users) ;
void deleteUserById( Integer id) ;
}
编写usersMapper 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.bjsxt.mapper.UsersMapper" >
< insert id= "insertUser" parameterType= "users" >
insert into users( name,age) values(
< /insert>
< select id= "selectUsersAll" resultType= "users" >
select id,name,age from users
< /select>
< select id= "selectUsersById" resultType= "users" >
select id,name,age from users where id =
< /select>
< update id= "updateUser" parameterType= "users" >
update users set name=
< /update>
< delete id= "deleteUserById" >
delete from users where id =
< /delete>
< /mapper>
编写input.html
< ! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> 添加用户< /title>
< /head>
< body>
< form th:action= "@{/users/addUser}" method= "post" >
用户姓名:< input type= "text" name= "name" /> < br/>
用户年龄:< input type= "text" name= "age" /> < br/>
< input type= "submit" value= "确定" /> < br/>
< /form>
< /body>
< /html>
编写ok.html
< ! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> 操作提示页面< /title>
< /head>
< body>
操作成功!!!
< /body>
< /html>
编写showUsers.html
< ! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> 展示用户数据< /title>
< /head>
< body>
< table border= "1" style= "width:500px;" >
< tr>
< th> 用户ID< /th>
< th> 用户姓名< /th>
< th> 用户年龄< /th>
< th> 操作< /th>
< /tr>
< tr th:each= "user : ${list} " >
< td th:text= "${user.id} " > < /td>
< td th:text= "${user.name} " > < /td>
< td th:text= "${user.age} " > < /td>
< td>
< a th:href= "@{/users/findUserById(id=${user.id} )}" > 更新用户< /a>
< a th:href= "@{/users/delUser(id=${user.id} )}" > 删除用户< /a>
< /td>
< /tr>
< /table>
< /body>
< /html>
编写updateUser.html
< ! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> Insert title here< /title>
< /head>
< body>
< form th:action= "@{/users/editUser}" method= "post" >
< input type= "hidden" name= "id" th:field= "${user.id} " />
用户姓名:< input type= "text" name= "name" th:field= "${user.name} " /> < br/>
用户年龄:< input type= "text" name= "age" th:field= "${user.age} " /> < br/>
< input type= "submit" value= "确定" /> < br/>
< /form>
< /body>
< /html>