MyBatis的简单操作

这里将的是简单的增、删、改、查等基本操作

首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客

1、添加数据

在jike.book.pojo包中,新建java类

JiKeUser.java:

 1 package jike.book.pojo;
 2 
 3 public class JiKeUser {
 4     private int id;
 5     private String userName;
 6     private String password;
 7     public int getId() {
 8         return id;
 9     }
10     public void setId(int id) {
11         this.id = id;
12     }
13     public String getUserName() {
14         return userName;
15     }
16     public void setUserName(String userName) {
17         this.userName = userName;
18     }
19     public String getPassword() {
20         return password;
21     }
22     public void setPassword(String password) {
23         this.password = password;
24     }
25 }


在jike.book.map中有:

MyBatisConfig.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 
 3 
 4 <!DOCTYPE configuration
 5     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 6     "http://mybatis.org/dtd/mybatis-3-config.dtd">
 7 
 8 <configuration>
 9 
10 <!-- 定义别名 ,必须放在environments之前-->
11   <typeAliases>
12       <typeAlias alias="JiKeUser" type="jike.book.pojo.JiKeUser"/>
13   </typeAliases>
14 
15   <environments default="development">
16      <environment id="development">
17        <transactionManager type="JDBC">
18        </transactionManager>
19        <dataSource type="POOLED">
20              <property name="driver" value="com.mysql.jdbc.Driver"/>
21              <property name="url" value="jdbc:mysql://localhost:3306/jikebook"/>
22              <property name="username" value="root"/>
23              <property name="password" value=""/>
24        </dataSource>
25      </environment>
26   </environments>
27   
28   
29   
30 
31   <mappers>
32         <mapper resource="jike/book/map/jikeUser.xml"/>
33   </mappers>
34 
35 </configuration>

jikeUser.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 
 3 
 4 <!DOCTYPE mapper
 5     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 6     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 7 
 8 <mapper namespace="/">
 9 
10   <select id="findById"  parameterType="int"  resultType="jike.book.pojo.JiKeUser">
11         select * from jikeUser where id=#{id}
12   </select>
13    
14   <insert id="insertUser" parameterType="JiKeUser" statementType="PREPARED"
15      keyProperty="id" useGeneratedKeys="true">
16      insert into JikeUser (userName,password) values(#{userName},#{password})
17   </insert>
18 </mapper>


新建测试类:

TestUpdate.java

 1 package jike.book.test;
 2 
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 
 6 import jike.book.map.InterfaceJiKeUserMap;
 7 import jike.book.pojo.JiKeUser;
 8 
 9 import org.apache.ibatis.io.Resources;
10 import org.apache.ibatis.session.SqlSession;
11 import org.apache.ibatis.session.SqlSessionFactory;
12 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
13 
14 public class TestUpdate {
15     
16     public static void main(String[] args) {
17         String resource = "jike/book/map/MyBatisConfig.xml";
18         Reader reader = null;
19         SqlSession session;
20         try {
21             reader = Resources.getResourceAsReader(resource);
22         } catch (IOException e) {
23             e.printStackTrace();
24         }
25         SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
26                 .build(reader);
27         session = sqlMapper.openSession();
28         try{
29     /* 添加  */
30             JiKeUser jku = new JiKeUser();
31             jku.setUserName("jike001");
32             jku.setPassword("123456");
33             session.insert("insertUser",jku);
34 session.commit();
35             
36         }catch(Exception e){
37             e.printStackTrace();
38         }finally{
39             session.close();
40         }
41     }
42 
43 }

执行java测试类即可

2、修改

    修改数据和添加数据差不多,在jikeUser.xml中添加

 <update id="updateUser" parameterType="JiKeUser">
     update JiKeUser set userName = #{userName},password=#{password}
     where id=#{id}
  </update>

然后将测试类改为:

package jike.book.test;

import java.io.IOException;
import java.io.Reader;

import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestUpdate {
    
    public static void main(String[] args) {
        String resource = "jike/book/map/MyBatisConfig.xml";
        Reader reader = null;
        SqlSession session;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
                .build(reader);
        session = sqlMapper.openSession();
        try{
            /* 修改  */
            JiKeUser jku2 = new JiKeUser();
            jku2.setUserName("jike00100");
            jku2.setPassword("123");
            jku2.setId(2);
            session.update("updateUser", jku2);
            

            session.commit();
            
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }

}

即可

3、删除

    删除操作稍微有些不同,首先在jike.book.map中新建一个接口

InterfaceJiKeUserMap.java,采用注解方式

 1 package jike.book.map;
 2 
 3 import org.apache.ibatis.annotations.Delete;
 4 
 5 public interface InterfaceJiKeUserMap {
 6 
 7     @Delete("delete from JiKeUser where id=#{id}" )
 8     public void deleteUser(Integer id);
 9     
10 }

在MyBatisConfig.xml中加入map映射

 <mapper class="jike.book.map.InterfaceJiKeUserMap" />

然后修改测试类

 1 package jike.book.test;
 2 
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 
 6 import jike.book.map.InterfaceJiKeUserMap;
 7 import jike.book.pojo.JiKeUser;
 8 
 9 import org.apache.ibatis.io.Resources;
10 import org.apache.ibatis.session.SqlSession;
11 import org.apache.ibatis.session.SqlSessionFactory;
12 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
13 
14 public class TestUpdate {
15     
16     public static void main(String[] args) {
17         String resource = "jike/book/map/MyBatisConfig.xml";
18         Reader reader = null;
19         SqlSession session;
20         try {
21             reader = Resources.getResourceAsReader(resource);
22         } catch (IOException e) {
23             e.printStackTrace();
24         }
25         SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
26                 .build(reader);
27         session = sqlMapper.openSession();
28         try{
29             
30             /* 删除  */
31             InterfaceJiKeUserMap ijum = session.getMapper(InterfaceJiKeUserMap.class);
32             ijum.deleteUser(1);
33             session.commit();
34             
35         }catch(Exception e){
36             e.printStackTrace();
37         }finally{
38             session.close();
39         }
40     }
41 
42 }

即可

4、查询

    查询比较麻烦,分为查询一条数据和查询多条数据

   4.1 查询一条语句(两种方式:利用HashMap 和 利用 JiKeUser对象)

         4.1.1 利用hashmap实现

   在jikeUser.xml下添加语句

<select id="loginSelect" resultType="JiKeUser" parameterType="hashmap">
      select * from JiKeUser where userName=#{userName} and password=#{password}
  </select>

然后修改测试类

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;

import jike.book.pojo.JiKeUser;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestSelect {

    public static void main(String[] args) {
        String resource = "jike/book/map/MyBatisConfig.xml";
        Reader reader = null;
        SqlSession session;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
                .build(reader);
        session = sqlMapper.openSession();
        try{
            
            /*
             * 查询一条记录
             * */
            
            
            /*  利用HashMap  */
            HashMap<String,String> hm = new HashMap();
            hm.put("userName", "jike00100");
            hm.put("password", "123");
            JiKeUser temp = session.selectOne("loginSelect",hm);
            if(temp!=null){
                System.out.println("登陆成功!");
            }
            

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}

  4.1.2 利用 JiKeUser对象
          在jikeUser.xml下添加语句

        

<select id="login2" resultType="JiKeUser" parameterType="JiKeUser">
     select * from JiKeUser where userName=#{userName} and password=#{password}
  </select>

修改测试类:

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;

import jike.book.pojo.JiKeUser;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestSelect {

    public static void main(String[] args) {
        String resource = "jike/book/map/MyBatisConfig.xml";
        Reader reader = null;
        SqlSession session;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
                .build(reader);
        session = sqlMapper.openSession();
        try{
            
            /*
             * 查询一条记录
             * */
            
            
            
            /*  利用 JiKeUser对象   */
            JiKeUser jku = new JiKeUser();
            jku.setUserName("jike00100");
            jku.setPassword("123");
            JiKeUser onetemp = session.selectOne("login2",jku);
            if(onetemp!=null){
                System.out.println("登陆成功");
            }
            
            

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}

 4.2 查询多条数据(利用resultType 和 利用resultMap)

  4.2.1 利用resultType

          在jikeUser.xml下添加语句

<select id="selectJiKeUserList" resultType="JiKeUser">
     select * from JiKeUser 
  </select>

修改测试类

 1 package jike.book.test;
 2 
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 import java.util.HashMap;
 6 import java.util.List;
 7 
 8 import jike.book.pojo.JiKeUser;
 9 
10 import org.apache.ibatis.io.Resources;
11 import org.apache.ibatis.session.SqlSession;
12 import org.apache.ibatis.session.SqlSessionFactory;
13 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
14 
15 public class TestSelect {
16 
17     public static void main(String[] args) {
18         String resource = "jike/book/map/MyBatisConfig.xml";
19         Reader reader = null;
20         SqlSession session;
21         try {
22             reader = Resources.getResourceAsReader(resource);
23         } catch (IOException e) {
24             e.printStackTrace();
25         }
26         SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
27                 .build(reader);
28         session = sqlMapper.openSession();
29         try{
30             
31             /*
32              * 查询多条记录
33              * */
34             /* 利用resultType */
35             List<JiKeUser> ap = session.selectList("selectJiKeUserList");
36             for(JiKeUser temp:ap){
37                 System.out.println("用户名="+temp.getUserName()+"密码="+temp.getPassword());
38             }
39             
40 
41         }catch(Exception e){
42             e.printStackTrace();
43         }finally{
44             session.close();
45         }
46     }
47 }


4.2.2 利用resultMap

         在jikeUser.xml下添加语句

1 <resultMap type="JiKeUser" id="JiKeUserMap">
2       <id property="id" column="id"></id>
3       <result property="userName" column="userName"/>
4       <result property="password" column="password"/>
5   </resultMap>
6   <select id="selectUsers" resultMap="JiKeUserMap">
7      select id,userName,password from JiKeUser
8   </select>

测试类:

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;

import jike.book.pojo.JiKeUser;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestSelect {

    public static void main(String[] args) {
        String resource = "jike/book/map/MyBatisConfig.xml";
        Reader reader = null;
        SqlSession session;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
                .build(reader);
        session = sqlMapper.openSession();
        try{
                    
            /*
             * 查询多条记录
             * */
    
            
            /* 利用resultMap */
            List<JiKeUser> ap1 = session.selectList("selectUsers");
            for(JiKeUser temp:ap1){
                System.out.println("用户名="+temp.getUserName());
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}
原文地址:https://www.cnblogs.com/UniqueColor/p/5753980.html