作者:刘佳乐
- 2020.6.27
先到官网了解mybatis的语法:https://mybatis.org/mybatis-3/zh/index.html
一、创建如下所示项目
二、在src下的cn.kgc.vo包下创建 Dept.java
package cn.kgc.vo;
public class Dept {
private long deptno;
private String dname;
private String loc;
public long getDeptno() {
return deptno;
}
public void setDeptno(long deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
}
三、在src下的cn.kgc.mapper包下创建 DeptMapper.java
package cn.kgc.mapper;
import cn.kgc.vo.Dept;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface DeptMapper {
@Select("select * from dept")
List<Dept> selectDept();
@Insert("insert into dept(dname) values (#{dname})")
int insertDept(Dept dept);
@Update("update dept set dname=#{dname} values deptno=#{deptno}")
int updateDept(Dept dept);
@Delete("delete from dept where deptno=#{deptno}")
int deleteDept(Integer deptno);
}
四、在src下的cn.kgc.service包下创建 DeptService.java
package cn.kgc.service;
import cn.kgc.vo.Dept;
import java.util.List;
public interface DeptService {
List<Dept> showDept();
int add(Dept dept);
int edit(Dept dept);
int del(Integer deptno);
}
五、在src下的cn.kgc.service包下创建 DeptServiceImpl.java
package cn.kgc.service;
import cn.kgc.mapper.DeptMapper;
import cn.kgc.vo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional
public class DeptServiceImpl implements DeptService {
@Autowired
private DeptMapper deptMapper;
@Override
public List<Dept> showDept() {
return deptMapper.selectDept();
}
@Override
public int add(Dept dept) {
return deptMapper.insertDept(dept);
}
@Override
public int edit(Dept dept) {
return deptMapper.updateDept(dept);
}
@Override
public int del(Integer deptno) {
return deptMapper.deleteDept(deptno);
}
}
六、在src下的cn.kgc.controller包下创建 CenterController.java
package cn.kgc.controller;
import cn.kgc.mapper.DeptMapper;
import cn.kgc.vo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class CenterController {
@Autowired
private DeptMapper deptMapper;
@GetMapping("/data.do")
public List<Dept> showDept() {
return deptMapper.selectDept();
}
@PostMapping("/add.do")
public int add(Dept dept) {
return deptMapper.insertDept(dept);
}
@PostMapping("/edit.do")
public int edit(Dept dept) {
return deptMapper.updateDept(dept);
}
@GetMapping("/del.do")
public int del(Integer deptno) {
return deptMapper.deleteDept(deptno);
}
}
七、在Webapp下的WEB-INF下创建web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<filter>
<filter-name>character</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>character</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
八、在Webapp下的WEB-INF下创建springMVC-servlet.xml.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:contex="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--1、全局扫描包-->
<contex:component-scan base-package="cn.kgc"/>
<!--2、mvc注解驱动-->
<mvc:annotation-driven/>
<!--3、驱动管理数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/kh85"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!--4、sqlsessionfactybean-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--5、数据源事务管理-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--6、事务注解驱动-->
<tx:annotation-driven/>
<!--7、映射扫描参数-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.kgc.mapper"/>
</bean>
</beans>