-
- 1、创建数据库表
-
2、创建Maven工程
-
3、导入Maven坐标
-
4、编写实体类
-
5、编写Mapper接口
-
6、编写MyBatisUtils工具类
-
7、 编写Service接口
-
8、编写Service接口实现
-
9、编写Controller
-
10、创建save.jsp页面
-
11、accountList.jsp
-
12、编写相应配置文件
-
13、运行测试
-
二、Spring整合MyBatis
-
- 1、整合思路
-
2、将SqlSessionFactory配置到Spring容器中,扫描Mapper,让Spring容器产生Mapper实现类
-
3、配置声明式事务控制
-
4、修改Service实现类代码
1、创建数据库表
create database ssmtest;
CREATE TABLE account
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(100) NOT NULL,
money
double(50,0) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、创建Maven工程
删除一些没有用的文件以及将缺少的文件创建出来
清空web.xml留下这些即可
<?xml version="1.0" encoding="UTF-8"?><web-app version=“2.4”
xmlns=“http://java.sun.com/xml/ns/j2ee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”>
创建目录结构
3、导入Maven坐标
<?xml version="1.0" encoding="UTF-8"?>4.0.0
war
itbluebox_ssm_demo
cn.itbluebox
itbluebox_ssm_demo
1.0.0-SNAPSHOT
org.apache.tomcat.maven
tomcat7-maven-plugin
2.1
8090
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
org.springframework
spring-context
5.0.5.RELEASE
org.aspectj
aspectjweaver
1.8.7
org.springframework
spring-jdbc
5.0.5.RELEASE
org.springframework
spring-tx
5.0.5.RELEASE
org.springframework
spring-test
5.0.5.RELEASE
org.springframework
spring-webmvc
5.0.5.RELEASE
javax.servlet
javax.servlet-api
3.0.1
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.2.1
provided
org.mybatis
mybatis
3.4.5
org.mybatis
mybatis-spring
1.3.1
mysql
mysql-connector-java
5.1.6
c3p0
c3p0
0.9.1.2
junit
junit
4.12
jstl
jstl
1.2
4、编写实体类
package cn.itbluebox.domain;
public class Account {
private int id;
private String name;
private double money;
public Account() {
}
public Account(int id, String name, double money) {
this.id = id;
this.name = name;
this.money = money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return “Account{” +
“id=” + id +
“, name='” + name + ‘’’ +
“, money=” + money +
‘}’;
}
}
5、编写Mapper接口
package cn.itbluebox.mapper;
import cn.itbluebox.domain.Account;
import java.util.List;
public interface AccountMapper {
//保存账号数据
void save(Account account);
//查询账号数据
List findAll();
}
6、编写MyBatisUtils工具类
package cn.itbluebox.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
InputStream is = null;
try {
is = Resources.getResourceAsStream(“SqlMapConfig.xml”);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
- 获得SqlSession
*/
public static SqlSession openSqlSession() throws IOException {
return sqlSessionFactory.openSession();
}
/**
- 提交释放资源
*/
public static void commitAndClose(SqlSession sqlSession) {
if (sqlSession != null) {
sqlSession.commit();
sqlSession.close();
}
}
/**
- 回滚释放资源
*/
public static void rollbackAndClose(SqlSession sqlSession) {
if (sqlSession != null) {
sqlSession.rollback();
sqlSession.close();
}
}
}
7、 编写Service接口
package cn.itbluebox.service;
import cn.itbluebox.domain.Account;
import java.util.List;
public interface AccountService {
//保存账号数据
void save(Account account);
//查询账号数据
List findAll();
}
8、编写Service接口实现
package cn.itbluebox.service.impl;
import cn.itbluebox.domain.Account;
import cn.itbluebox.mapper.AccountMapper;
import cn.itbluebox.service.AccountService;
import cn.itbluebox.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Service;
import java.util.List;
@Service(“accountService”)
public class AccountServiceImpl implements AccountService {
@Override
public void save(Account account) {
SqlSession sqlSession = MyBatisUtils.openSqlSession();
AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
accountMapper.save(account);
sqlSession.commit();
sqlSession.close();
}
@Override
public List findAll() {
SqlSession sqlSession = MyBatisUtils.openSqlSession();
AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
return accountMapper.findAll();
}
}
9、编写Controller
package cn.itbluebox.controller;
import cn.itbluebox.domain.Account;
import cn.itbluebox.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class AccountController {
@Autowired
private AccountService accountService;
@RequestMapping(“/save”)
@ResponseBody
public String save(Account account){
accountService.save(account);
return “save success”;
}
@RequestMapping(“findAll”)
public ModelAndView findAll(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName(“accountList”);
modelAndView.addObject(“accountList”,accountService.findAll());
return modelAndView;
}
}
10、创建save.jsp页面
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
保存账户信息表单
用户名称
账户金额
11、accountList.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
展示账户数据列表
<c:forEach items=“${accountList}” var=“account”>
${account.id} ${account.name} ${account.money}</c:forEach>
12、编写相应配置文件
- Spring配置文件:applicationContext.xml
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:aop=“http://www.springframework.org/schema/aop”
xmlns:tx=“http://www.springframework.org/schema/tx”
xmlns:context=“http://www.springframework.org/schema/context”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package=“cn.itbluebox”>
<context:exclude-filter type=“annotation”
expression=“org.springframework.stereotype.Controller”></context:exclude-filter>
</context:component-scan>
<context:property-placeholder location=“classpath:jdbc.properties”></context:property-placeholder>
- SprngMVC配置文件:spring-mvc.xml
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package=“cn.itbluebox.controller”></context:component-scan>
mvc:annotation-driven</mvc:annotation-driven>
mvc:default-servlet-handler</mvc:default-servlet-handler>
- MyBatis映射文件:AccountMapper.xml
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
ller–>
<context:component-scan base-package=“cn.itbluebox.controller”></context:component-scan>
mvc:annotation-driven</mvc:annotation-driven>
mvc:default-servlet-handler</mvc:default-servlet-handler>
- MyBatis映射文件:AccountMapper.xml
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-SRubUdh6-1715722124217)]
[外链图片转存中…(img-VFru7eXB-1715722124218)]
[外链图片转存中…(img-NGBGlUxO-1715722124218)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!