zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    php exec() error…
    已达到计算机的连接数最大值,无法再同此远程计算机连接
    网站URL路径的中文问题[中文路径编码]【转】
    获取用户客户端的IP的方法
    flex如何处理java通过BlazeDS传递来的对象
    $_SERVER["所有这里的东西"]
    鼠标悬浮时显示对话框
    android设置 textview的背景
    在代码中设置字体颜色
    jdk 和sdk环境变量配置
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5753980.html
Copyright © 2011-2022 走看看