zoukankan      html  css  js  c++  java
  • myBatis入门案例

    myBatis的一个入门案例

    功能:

    (1)查出单个用户

    (2)查出所有用户

    (3)修改用户信息

    (4)新增用户信息

    (5)删除用户信息

    1、加载相关的包

    mybatis-3.2.3.jar

    mysql-connector-java-5.1.7-bin.jar

    2、目录结构

    3、配置configuration.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" />
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url"
                        value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" />
                    <property name="username" value="root" />
                    <property name="password" value="123456" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="com/mybatis/domain/User.xml" />
        </mappers>
    </configuration>

    4、User.java模型文件

    package com.mybatis.domain;
    
    import java.io.Serializable;
    
    public class User implements Serializable{
        private static final long serialVersionUID = 1L;
        private int id;
        private String name;
        
        public User(){};
        
        public User(int id,String name){
            this.id = id;
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String toString(){
            return "User [id:" + this.id + ";name:" + this.name +"]";
        }
    }

    5、User.xml(sql配置文件)

    <?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="User">
        <cache />
        <!-- 通过id查询一个用户 -->
        <select id="selectUser" parameterType="int"
            resultType="com.mybatis.domain.User">
            select * from user where id=#{id}
        </select>
        
        <select id="selectUserToHashMap" parameterType="hashMap" resultType="hashMap">
            select * from user where id=#{id} and name=#{name}
        </select>
        
        <!-- 获取所有的数据 -->
        <select id="getUser" resultType="com.mybatis.domain.User">
            select * from user
        </select>
        
        <!-- 插入一条记录 -->
        <insert id="insertUser" parameterType="com.mybatis.domain.User" useGeneratedKeys="true" keyProperty="id">
            insert into user(id,name) values(#{id},#{name})
        </insert>
        
        <!-- 更新一条记录 -->
        <update id="updateUser" parameterType="com.mybatis.domain.User">
            update user set name=#{name} where id = #{id}
        </update>
        
        <!-- 删除一条记录 -->
        <delete id="deleteUser" parameterType="int">
            delete from user where id = #{id}
        </delete>
    </mapper>

    6、测试代码

    package com.mybatis.test;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    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 com.mybatis.domain.User;
    
    public class UserTest {
        public static void main(String[] args) throws IOException {
            String resource = "configuration.xml";
            Reader reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession(true);        //true自动提交
            
            try {
                //查询一个用户
                User user = session.selectOne("selectUser", "1");
                System.out.println(user);
                
                Map paraMap = new HashMap();
                paraMap.put("id", 2);
                paraMap.put("name", "李四");
                Map user2 = session.selectOne("selectUserToHashMap",paraMap);
                System.out.println("User [id:"+user2.get("id")+";name:"+user2.get("name")+"]");
                
                //获取所有用户
                System.out.println("**************");
                List<User> users = session.selectList("getUser");
                for(User user1 : users){
                    System.out.println("User [id:"+user1.getId()+";name:"+user1.getName()+"]");
                }
                System.out.println("**************");
                
                //插入一个用户
                User newUser = new User();
                newUser.setId(4);
                newUser.setName("赵六");
                int id = session.insert("insertUser", newUser);
                session.commit();
                System.out.println(id);
                
                //修改用户
                newUser.setId(4);
                newUser.setName("赵六六");
                session.update("updateUser", newUser);
                
                //删除用户
                session.delete("deleteUser", 4);
            } catch (RuntimeException e) {
                e.printStackTrace();
            }finally{
                session.close();
            }
        }
    }
  • 相关阅读:
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1131 Subway Map (30 分)
    PAT 甲级 1131 Subway Map (30 分)
    AcWing 906. 区间分组 区间贪心
    AcWing 907. 区间覆盖 区间贪心
  • 原文地址:https://www.cnblogs.com/jingyunyb/p/3607527.html
Copyright © 2011-2022 走看看