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();
            }
        }
    }
  • 相关阅读:
    ThinkPHP(3.2)搭建简单留言板项目
    phpmailer 发送邮件
    smtp协议
    反向Ajax原理和模型(燕十八php笔记)
    全部选中复选框
    Ajax大文件切割上传
    ajax上传文件带进度条的思路
    ajax返回值
    Sublime 中文乱码问题
    AndroidStudio 问题点
  • 原文地址:https://www.cnblogs.com/jingyunyb/p/3607527.html
Copyright © 2011-2022 走看看