Day02-Mybatis项目demo及SSM项目demo

这篇博客详细介绍了如何进行Mybatis项目和SSM(Spring+SpringMVC+Mybatis)项目的配置与实践,包括pom.xml配置、资源文件配置、实体类、DAO接口及其XML文件的创建,以及测试类的编写。在SSM项目中,还涉及了Spring、SpringMVC、Mybatis等组件的版本选择,以及web.xml配置、控制器、服务层和持久层的实现。通过搭建Tomcat服务器,实现了增删改查操作。
摘要由CSDN通过智能技术生成

Mybatis项目小demo

pom.xml配置

接昨天的pom.xml在文件末尾添加:

<!-- Could not find resource com/zhongruan/dao/UserDao.xml 解决方法 -->
    <!-- 当项目构建时   java文件夹下 去加载 所有 文件夹下的 所有后缀名为 .xml 的文件  -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

resource文件夹下config.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置mybatis的运行环境 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源  数据源采用数据库连接池技术  c3p0  druid-->
            <dataSource type="POOLED">
                <!-- 数据库相关配置 -->
                <!-- mysql 8 以上驱动 -->
                <!--<property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/whlg?serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="a129297"/>
            </dataSource>

        </environment>
    </environments>

    <!-- 注册映射文件 -->
    <mappers>
        <mapper resource="com/whut/dao/UserDao.xml"></mapper>
    </mappers>

</configuration>

在com/whut/bean目录下创建User类

package com.whut.bean;

public class User {
    private int id;
    private String username;
    private String password;

    public void setUsername(String name){
        this.username=name;
    }

    public void setPassword(String password){
        this.password=password;
    }

    public String getUsername(){
        return this.username;
    }

    public String getPassword(){
        return this.password;
    }
}

在com/whut/dao目录下创建UserDao和UserDao.xml

// UserDao
package com.whut.dao;
import com.whut.bean.User;

public interface UserDao {
    void save(User user);
}

//UserDao.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">
<!--
    1. mapper 标签一定要指定 名称空间  namespace
    2. statment 标签(insert update select) id属性 必须与方法名相对应
    3. #{} 占位符   user.username
-->
<mapper namespace="com.whut.dao.UserDao">
    <insert id="save" parameterType="com.whut.bean.User">
        insert into t_user(username, password) values (#{username}, #{password})
    </insert>
</mapper>

在com/whut/test目录下创建测试类demo

package com.whut.test;

import com.whut.bean.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class demo{
    public static void main(String[] args) {
        // 加载Mybatis的配置文件
        InputStream inputStream = demo.class.getClassLoader().getResourceAsStream("config.xml");
        // 得到Mybatis的核心类
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 指定调用的方法
        String statement = "com.whut.dao.UserDao.save";
        // 指定需要存储的对象
        User user = new User();
        user.setUsername("阿鹄");
        user.setPassword("a129297");

        // 调用方法
        sqlSession.insert(statement, user);
        sqlSession.commit();
    }
}

运行结果:

运行前t_user内容:
t_user运行前内容
运行后t_user内容:
t_user运行后内容


SSM整合及简易项目demo

本次项目练习使用了Spring+SpringMVC+Mybatis+MySQL
版本号:SpringMVC(5.2.7.RELEASE)
              SpringJDBC(5.2.7.RELEASE)
              SpringAOP(5.2.7.RELEASE)
              SpringAspect(5.2.7.RELEASE)
              Mybatis-Spring(2.0.5)
              servlet API(3.1.0)
              Mybatis(3.5.5)
              Mysql(8.0.20)
              c3p0(0.9.5.4)
              JSTL(1.2)

新建maven-webapp项目

在这里插入图片描述
注意选择JDK版本
然后一路next就行了


pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>

<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>

  <groupId>com.whut</groupId>
  <artifactId>ssm_demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>ssm_demo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- SpringMVC -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

    <!-- SpringJDBC -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

    <!-- SpringAOP -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

    <!--Mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>

    <!--Mybatis整合spring-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.5</version>
    </dependency>

    <!--Mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.20</version>
    </dependency>

    <!--c3p0连接池-->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.4</version>
    </dependency>

    <!--JSTL jsp标准标签库-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <!--servlet API-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.*</include>
        </includes>
      </resource>
    </resources>

    <finalName>ssm_demo</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

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>

  <display-name>Archetype Created Web Application</display-name>

  <!-- Spring -->
  <!-- 1. 启动Spring -->
  <!-- context  上下文 == 运行环境 -->
  <!-- 1.1 配置全局参数 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <!-- classpath 相当于 resources路径  -->
    <param-value>classpath:spring.xml</param-value>
  </context-param>
  <!-- 3. 字符编码过滤器 -->
  <filter>
    <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- 1.2 配置监听器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!-- SpringMVC -->
  <!-- 2. 启动 SpringMVC -->
  <!-- 2.1. 配置核心servlet  DispathcerServlet-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 2.1.1 引入 SpringMVC 的配置文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>

  <!-- 2.2 配置servlet的映射 -->
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <!-- / 表示监听了 所有的请求 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>


  <!-- 4. 加载静态资源 -->
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>
</web-app>

这里要注意

> `<web-app></web-app>`之间必须按照一定顺序来设置参数(不同参数之间的先后顺序必须保持以下规则)
> 
>  "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".

在com/whut/bean目录下创建User

package com.whut.bean;

public class User {
    private int id;
    private String username;
    private String password;
    public User() {
    }
    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                "\n username='" + username + '\'' +
                "\n password='" + password + '\'' +
                '}';
    }
}

在com/whut/dao目录下创建UserDao和UserDao.xml

package com.whut.dao;
import com.whut.bean.User;
import java.util.List;

public interface UserDao {
    // 查询全部用户 的方法
    List&lt;User&gt; findAll();
    //
    int add(User user);
    //
    int del(int id);
    //
    int up(User user);
    // (单个用户)
    User find(int id);
    // List集合的接口  &lt;User&gt;  泛型就是 将运行期间的错误 转换到 编译期间    User.login()   Student.login()
}
<?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.whut.dao.UserDao">
    <select id="findAll" resultType="User">
        select * from t_user;
    </select>

    <select id="find" parameterType="Integer" resultType="User">
        select * from t_user where id=#{id};
    </select>

    <insert id="add" parameterType="User">
        insert into t_user(username, password) values (#{username}, #{password});
    </insert>

    <delete id="del" parameterType="Integer">
        delete from t_user where id=#{id};
    </delete>

    <update id="up" parameterType="User">
        update t_user set username=#{username},password=#{password} where id=#{id};
    </update>
</mapper>

在com/whut/controller目录下创建UserHandler

package com.whut.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.whut.bean.User;
import com.whut.dao.UserDao;
import com.whut.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserHandler {
    // @Controller  表示UserHandler类 是一个控制器类(处理请求)
    @Autowired
    UserDao userDao;

    @Autowired
    UserService userService;

    @RequestMapping("/findAll")
    public ModelAndView index() {
        System.out.println("index方法执行 ");
        List<User> user=null;
        ModelAndView mv=new ModelAndView();
        user=userService.findAll();
        mv.addObject("list",user);
        mv.setViewName("list");
        return mv;
    }


    @RequestMapping("/add")
    public ModelAndView sendMail_add() {
        String s = "添加失败!";
        ModelAndView mv=new ModelAndView();
        User user = new User();
        user.setUsername("石杨鹄");
        user.setPassword("123456");
        if (userService.add(user)) {
            s = "添加成功!";
            mv.addObject("add",s);
            mv.setViewName("add");
            return mv;
        }
        mv.addObject("add",s);
        mv.setViewName("add");
        return mv;
    }

    @RequestMapping("/del")
    public ModelAndView sendMail_del() {
        String s = "删除失败!";
        ModelAndView mv=new ModelAndView();
        int id=2;
        if (userService.del(id)) {
            s = "删除成功!";
            mv.addObject("add",s);
            mv.setViewName("add");
            return mv;
        }
        mv.addObject("add",s);
        mv.setViewName("add");
        return mv;
    }

    @RequestMapping("/up")
    public ModelAndView sendMail_up() {
        String s = "修改失败!";
        ModelAndView mv=new ModelAndView();
        User user;
        user=userService.find(2);
        if (user!=null) {
            user.setPassword("129297");
            user.setUsername("syh");
            if(userService.up(user)){
                s = "修改成功!";
                mv.addObject("add",s);
                mv.setViewName("add");
                return mv;
            }
        }
        mv.addObject("add",s);
        mv.setViewName("add");
        return mv;
    }
}

在com/whut/service目录下创建UserService

package com.whut.service;

import com.whut.bean.User;
import java.util.List;

public interface UserService {
    List<User> findAll();
    boolean add(User user);
    boolean del(int id);
    boolean up(User user);
    User find(int id);
}

在com/whut/service/impl目录下创建UserServiceImpl

package com.whut.service.impl;

import com.whut.bean.User;
import com.whut.dao.UserDao;
import com.whut.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    UserDao userDao;

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }
    @Override
    public boolean add(User user) {
        return userDao.add(user)>0?true:false;
    }
    @Override
    public boolean del(int id) {
        return userDao.del(id)>0?true:false;
    }
    @Override
    public boolean up(User user) {
        return userDao.up(user)>0?true:false;
    }

    @Override
    public User find(int id) {
        return userDao.find(id);
    }
}

搭建Tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行Tomcat服务器进入主页

在这里插入图片描述

添加用户

在这里插入图片描述
在这里插入图片描述

更新用户

在这里插入图片描述
在这里插入图片描述

删除数据

在这里插入图片描述
在这里插入图片描述

今天的学习到此结束!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值