Spring-mybatis的操作实例

学生信息管理

1、打入需要用到的jar包

pom.xml
版本选1.8

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.38</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.2.6.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.2.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.11.0</version>
</dependency>
2、构建基本的程序结构

在这里插入图片描述
在包中创建具体的类或接口
在这里插入图片描述

3、完成配置文件的配置
(1).MySQL的配置信息

根据自己数据库的配置来更改

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://192.168.56.138:3306/student?useUnicode=true&characterEncoding=utf-8&useSSL=true
mysql.username=root
mysql.password=root
(2).spring-mvc 的配置

xmlns:context和xmlns:mvc需要自己加入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<context:component-scan base-package="control"/>
<context:annotation-config/>
<mvc:annotation-driven/>
</beans>
(2).spring-mybatis的配置

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
<!--引入context模块-->
   xmlns:context="http://www.springframework.org/schema/context"
   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
">
<!--组件扫描:控制model(模型层)-->
<context:component-scan base-package="cn.kgc.kb08.mbdemo"/>
<!--启动注解配置-->
<context:annotation-config/>
<!--引入数据源配置文件xxx.properties-->
<context:property-placeholder location="classpath:datasource.properties"/>

<!--数据源实体bean(spring-jdbc提供)-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${mysql.driver}"/>驱动
    <property name="url" value="${mysql.url}"/>连接字符串
    <property name="username" value="${mysql.username}"/>账号
    <property name="password" value="${mysql.password}"/>密码
</bean>

<!--数据库事务管理bean(spring-jdbc提供)-->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>数据源关联依赖
</bean>

<!--SQL会话工厂bean(mybatis-spring提供-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>数据源关联依赖
    <property name="typeAliasesPackage" value="cn.kgc.kb08.mbdemo.entity"/>别名包
    <property name="mapperLocations" 	value="classpath:mapping/*Mapper.xml"/>Mapper.xml	关联
</bean>

<!--Mapper接口扫描bean(mybatis-spring提供-->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactoryBeanName" 
value="sqlSessionFactory"/>SQL会话工厂关联依赖        
<property name="basePackage" value="cn.kgc.kb08.mbdemo.mapper"/>mapper接口关联
</bean>

<bean id="vssService" class="cn.kgc.kb08.mbdemo.service.VStuScoreService"/>
</beans>
4、编写具体的程序
(1).编写实体类

和MySQL中的表字段要一致,采用包装类来一一对应数据库中字段的类型

private Integer id;
private String sname;
private String sgender;
private Integer sage;
private String saddress;
private String semail;

再获取get和set方法就可以完成基本的准备。

(2).编写模型层

1).mapper接口的编写
需要注意的是一些SQL语句和mybatis的运用
在这里插入图片描述

@Insert("insert into studentinfo(sname,sgender,sage,saddress,semail) value(#{sname},#{sgender},#{sage},#{saddress},#{semail})")
int addStu(StudentInfo stu);

@Delete("delete from studentinfo where id=#{id}")
int removeStu(int id);

@Select("select * from studentinfo where id =#{id}")
StudentInfo findById(int id);

int modify(StudentInfo stu);

@Select("select ceil(count(1)/#{pageSize}) from studentinfo")
int findTotal(int pageSize);

@Select("select * from studentinfo limit #{begin},#{pageSize}")
List<StudentInfo> findStu(@Param("begin") int begin, @Param("pageSize") int pageSize);

2).服务层service 的编写
在这里插入图片描述

@Service
public class StudentService {
@Autowired
private StudentMapper sm;

public Result addStu(StudentInfo stu) {
    return Result.succeed(sm.addStu(stu));
}

public Result removeStu(int id) {
    return Result.succeed(sm.removeStu(id));
}

public Result findById(int id) {
    return Result.succeed(sm.findById(id));
}

public Result modify(StudentInfo stu) {
    return Result.succeed(sm.modify(stu));
}

public Result findStu(int pageNo, int pageSize) {
    int total = sm.findTotal(pageSize);
    pageNo = total == 0 ? 1 : pageNo>total?total:pageNo;
    return Result.succeed(Page.init(total,pageNo, PageUnti.pageltems(pageNo,pageSize,total),sm.findStu((pageNo-1)*pageSize,pageSize)));
}
}
(3).编写控制层

控制层的方法实现

在这里插入图片描述

5、web.xml文件的配置

在这里插入图片描述
最后就是与前端的连接,按自己的工具来操作即可,也可以在idea中测试

获取Result和PageUntil的工具类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值