使用Maven方式创建的Java项目所编写的Mybatis的增删改查案例

一 Maven项目结构如下在这里插入图片描述
这个案例中首先创建一个
在这里插入图片描述
这个是父项目,起下面包含三个子项目
1 mapper Maven的映射
2 pojo 为对象的实体类
3 service 为调用mapper映射的各种SQL执行动作。
二 父项目的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.zxf</groupId>
  <artifactId>mybatisProject2</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>mybatisProject2-pojo</module>
    <module>mybatisProject2-mapper</module>
    <module>mybatisProject3-serveice</module>
  </modules>
  <!--对依赖的坐标的版本做集中管理-->
  <properties>
    <junit.version>4.12</junit.version>
    <mybatis.version>3.2.8</mybatis.version>
    <mysql.version>5.1.32</mysql.version>
    <jstl.version>1.2</jstl.version>
    <servlet.version>3.1.0</servlet.version>
    <jsp.version>2.0</jsp.version>
    <log4j.version>1.2.17</log4j.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <!-- mybatis -->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.version}</version>
      </dependency>
      <!--mysql-->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
      <!--jsp&servlet-->
      <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${servlet.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>${jsp.version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/log4j/log4j -->
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
<build>
  <!--配置资源拷贝插件-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>

      <resource>
        <directory>src/main/resouces</directory>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>

    </resources>
</build>
</project>

三 编写pojo实体类对象
1 pojo中的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">
    <parent>
        <artifactId>mybatisProject2</artifactId>
        <groupId>com.zxf</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mybatisProject2-pojo</artifactId>
<dependencies>
    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
    </dependency>
    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>
</project>

2 pojo中的实体类
1 表结构如下
在这里插入图片描述
2 Java对象

package com.zxf.pojo;
public class Flower {
    private Integer id;
    private String name;
    private Float price;
    private String production;
    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 Float getPrice() {
        return price;
    }
    public void setPrice(Float price) {
        this.price = price;
    }

    public String getProduction() {
        return production;
    }
    public void setProduction(String production) {
        this.production = production;
    }
}

四 mapper项目模块
1 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">
    <parent>
        <artifactId>mybatisProject2</artifactId>
        <groupId>com.zxf</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mybatisProject2-mapper</artifactId>

  <dependencies>
      <dependency>
          <artifactId>mybatisProject2-pojo</artifactId>
          <groupId>com.zxf</groupId>
          <version>1.0-SNAPSHOT</version>
      </dependency>
  </dependencies>
</project>

2 接口程序

package com.zxf.mapper;
import com.zxf.pojo.Flower;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface FlowerMapper {
    //采用了注解的方式
    @Select("select * from flower")
    public List<Flower> getAll();

    public List<Flower> getAll2();

    public int saveFlower(Flower flower);

    public void updateFlower(Flower flower);

    public void delFlower(Integer i);

    public Flower findByidFlower(Integer i);

    public List<Flower> findBylike(@Param("name") String name);

    public int getAllSize();


}

因为采用的动态代理,所有这里不用编写接口的实现类。
3 接口对应的.xml映射文件
FlowerMapper.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.zxf.mapper.FlowerMapper">
       <select id="getAll2" resultType="flower">
          select * from flower
       </select>

       <insert id="saveFlower" parameterType="flower">
           INSERT flower(name,price,production) VALUES (#{name},#{price},#{production})
       </insert>

      <update id="updateFlower" parameterType="flower">
          UPDATE flower set name=#{name},price=#{price},production=#{production}
             where id=#{id}
      </update>
      <delete id="delFlower" parameterType="int">
          DELETE  from flower where id=#{id}
      </delete>
    <select id="findByidFlower" parameterType="int" resultType="flower">
          SELECT * from flower where id=#{id}
    </select>
    <select id="findBylike" parameterType="string" resultType="flower">
           SELECT * from flower where name like #{name}

    </select>
    <select id="getAllSize" resultType="int">
        select count(*) from flower;
    </select>
</mapper>

五 service模块
1 mybatis的核心配置文件,也是加载数据库和接口映射文件
zhangMyBatis.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>
    <properties resource="jdbc.properties"/>
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <typeAliases>
        <package name="com.zxf.pojo"/>
    </typeAliases>

    <!-- default引用environment的id,当前所使用的环境 -->
    <environments default="abc">
        <environment id="abc">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper class="com.zxf.mapper.LogMapper"/>
        <mapper class="com.zxf.mapper.UsersMapper"/>
        <mapper class="com.zxf.mapper.FlowerMapper"/>
    </mappers>
</configuration>

2 jdbc配置的属性文件
jdbc
jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.0.148:3306/test
jdbc.user=root
jdbc.password=abc123

2 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">
    <parent>
        <artifactId>mybatisProject2</artifactId>
        <groupId>com.zxf</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mybatisProject3-serveice</artifactId>
     <dependencies>

         <dependency>
             <artifactId>mybatisProject2-mapper</artifactId>
             <groupId>com.zxf</groupId>
             <version>1.0-SNAPSHOT</version>
         </dependency>

         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
         </dependency>

     </dependencies>

</project>

3 最后的junit的测试文件程序

package com.zxf;
import com.zxf.mapper.FlowerMapper;
import com.zxf.pojo.Flower;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
public class Test2 {
    private  SqlSessionFactory sqlSessionFactory;
    private SqlSession session;
    private FlowerMapper flowerMapper;
    private InputStream is;
    @Before  //用于测试方法之前执行。
    public   void init() throws Exception{
        is= Resources.getResourceAsStream("zhangMyBatis.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        session=sqlSessionFactory.openSession();
        flowerMapper=session.getMapper(FlowerMapper.class);
    }
    @After  //用于测试方法之后执行。
    public void destory()throws Exception{
        session.commit();
        session.close();
        is.close();
    }
    //调用的注解那个方法
    @Test
    public void test1()throws Exception{
        List<Flower> flowers=flowerMapper.getAll();
        for(Flower f:flowers){
            System.out.println(f.getName());
        }
    }
    //查询所有的方法
    @Test
    public void test2()throws Exception{
        List<Flower> flowers=flowerMapper.getAll2();
        for(Flower f:flowers){
            System.out.println(f.getId()+"-->"+f.getName()+","+f.getProduction());
        }
    }
    //增加
    @Test
    public void test3()throws Exception{
        Flower flower=new Flower();
        flower.setProduction("在看看吧");
        flower.setPrice(92.89F);
        flower.setName("程序可以不");
         int i=flowerMapper.saveFlower(flower);
    }
    //修改
    @Test
    public void test4()throws Exception{
        Flower flower=new Flower();
        flower.setId(1414);
        flower.setProduction("开始修改了");
        flower.setPrice(63.9F);
        flower.setName("看看修改结果吧");
        flowerMapper.updateFlower(flower);
    }
    //删除
    @Test
    public void test5()throws Exception{
        flowerMapper.delFlower(1413);
    }
    //查询
    @Test
    public void test6()throws Exception{
        Flower byidFlower = flowerMapper.findByidFlower(1);
        System.out.println(byidFlower.getId()+":"+byidFlower.getName()+","+byidFlower.getProduction());
    }
    //模糊查询
    @Test
    public void test7()throws Exception{
       List <Flower>fs = flowerMapper.findBylike("%1%");
       for(Flower flower:fs){
           System.out.println(flower.getId()+":"+flower.getName()+","+flower.getProduction());
        }

    }

    //返回聚合函数 总记录条数
    @Test
    public void test8()throws Exception{
        int allSize = flowerMapper.getAllSize();
        System.out.println(allSize);

    }
}

以上程序是可以跑通的,大家可以通过IDEA工具创建Maven项目去实践一下吧。
如果在编写过程中遇到问题,可以在留言给我留言。

扫描二维码关注公众号,回复: 11580004 查看本文章

猜你喜欢

转载自blog.csdn.net/zhang6132326/article/details/105078231
今日推荐