首页 > 其他 > 详细

mybatis测试做到简单的增删改查

时间:2020-03-15 12:21:45      阅读:66      评论:0      收藏:0      [点我收藏+]

搭建框架

建立maven项目就不说了

导入需要用到的依赖

<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.11</version>
 <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.4.6</version>
</dependency>
?
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.47</version>
</dependency>

由于怕maven资源导出失败,需要在pom.xml的build里边加入这段话

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

先在resources创建my-batis-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>
   <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC"></transactionManager>
           <dataSource type="POOLED">
               <property name="driver" value="com.mysql.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://127.0.0.1:3306/student?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
               <property name="username" value=""/>
               <property name="password" value=""/>
           </dataSource>
       </environment>
   </environments>
   <mappers>
       <mapper resource="com/**/dao/UserMapper.xml"/>
   </mappers>
</configuration>

依然是先创建实体类,例子:

package com.lt.pojo;
?
public class User {
   public User() {
  }
?
   private int id;
?
   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;
  }
?
   public User(int id, String userName, String password) {
       this.id = id;
       this.userName = userName;
       this.password = password;
  }
?
   private String userName;
   private String password;
?
   @Override
   public String toString() {
       return "User{" +
               "id=" + id +
               ", userName=‘" + userName + ‘\‘‘ +
               ", password=‘" + password + ‘\‘‘ +
               ‘}‘;
  }
}

创建工具类MyBatisUtil

package com.lt.util;
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.InputStream;
?
public class MybatisUtil {
   private static SqlSessionFactory sqlSessionFactory;
   static {
       try {
           String resource = "mybatis-config.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      } catch (Exception e) {
           e.printStackTrace();
      }
  }
   public static SqlSession getSqlSession(){
       return sqlSessionFactory.openSession();
  }
}

增删改查的例子

依然是创建一个dao包,我的名字是UserMapper

package com.lt.dao;
?
import com.lt.pojo.User;
?
import java.util.List;
?
public interface UserMapper {
   List<User> getUserList();    //泛型是User,得到列表
   User getuserByid(int id); //返回类型是User     查
   int addUser(User user); //返回类型是int       增
   int upDate(User user); //返回类型是int       改
   int deletDate(int id); //返回类型是int
}

普通项目该写实现类了,但是我们是mybatis欸!所以直接写一个xml文件对应方法。名字是UserMapper.xml,对应在resource里边的mapper

技术分享图片

 

 

<?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.lt.dao.UserMapper">
   <select id="getUserList" resultType="com.lt.pojo.User">
select * from user
</select>
   <select id="getuserByid" resultType="com.lt.pojo.User" parameterType="int">
select * from user where id=#{id}
</select>
?
   <insert id="addUser" parameterType="com.lt.pojo.User" >
insert into user (id,userName,password) values(#{id},#{userName},#{password})
   </insert>
?
   <update id="upDate" parameterType="com.lt.pojo.User">
      update user set userName=#{userName},password=#{password} where id=#{id};
   </update>
   <delete id="deletDate" parameterType="int">
      delete from user where id=#{id};
   </delete>
</mapper>

接下来测试看我们的功能是否有效

切记!增删改返回类型都是int,查返回类型是user

增删改都要commit()一下

@Test
public void test(){
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   List<User> userList = mapper.getUserList();
   for (User user : userList) {
       System.out.println(user);
  }
   sqlSession.close();
}
?
@Test
public void test1(){
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   User user = mapper.getuserByid(2);
   System.out.println(user);
   sqlSession.close();
}
@Test
public void test2() {
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   int lt = mapper.addUser(new User(3,"lt","123"));
   if (lt>0){
       System.out.println("111111111111");
  }
   sqlSession.commit();
   sqlSession.close();
}
@Test
public void test3(){
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   int ltt = mapper.upDate(new User(3, "ltt", "123123"));
   sqlSession.commit();
   sqlSession.close();
}
@Test
public void test4(){
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   int i = mapper.deletDate(2);
   sqlSession.commit();
   sqlSession.close();
}

 还有mybatis的文档要的留言

mybatis测试做到简单的增删改查

原文:https://www.cnblogs.com/ltdh/p/12496666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!