zoukankan      html  css  js  c++  java
  • mybatis搭建

    1、准备jar包:

    拷贝到web工程的lib目录

    2、创建用户表,并插入一条测试数据

    Create TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `userName` varchar(50) DEFAULT NULL,
      `userAge` int(11) DEFAULT NULL,
      `userAddress` varchar(200) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    
    
    Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong');

    3、在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 鼠标右键点击 JavaResource

    4、设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下:

    <?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>
        <typeAliases> 
            <typeAlias alias="User" type="com.mb.mybatis.model.User"/> 
        </typeAliases> 
    
        <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://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8" />
                <property name="username" value="root"/>
                <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>
        
        <mappers>
            <mapper resource="com/mb/mybatis/model/User.xml"/>
        </mappers>
    </configuration>

    5、建立与数据库对应的 java class,以及映射文件

    在src_user下建立package:com.mb.mybatis.model ,并在这个 package 下建立 User 类

    package com.mb.mybatis.model;
    
    public class User {
        private int id;
        private String userName;
        private String userAge;
        private String userAddress;
        
        /**
         * 文章id
         */
        private String aid;
        
        /**
         * 文章标题
         */
        private String title;
        
        /**
         * 文章内容
         */
        private String content;
        
        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 getUserAge() {
            return userAge;
        }
        public void setUserAge(String userAge) {
            this.userAge = userAge;
        }
        public String getUserAddress() {
            return userAddress;
        }
        public void setUserAddress(String userAddress) {
            this.userAddress = userAddress;
        }
        public String getAid() {
            return aid;
        }
        public void setAid(String aid) {
            this.aid = aid;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getContent() {
            return content;
        }
        public void setContent(String content) {
            this.content = content;
        }
    }

    6、同时建立这个User 的映射文件 User.xml:

    <?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.mb.mybatis.inter.IUserMapper">
        <resultMap type="User" id="resultListUser">
            <id column="id" property="id" />
            <result column="userName" property="userName" />
            <result column="userAge" property="userAge" />
            <result column="userAddress" property="userAddress" />
        </resultMap>
        
        <insert id="addUser" parameterType="User" 
            useGeneratedKeys="true" keyProperty="id"> 
            insert into user(userName,userAge,userAddress)  
                 values(#{userName},#{userAge},#{userAddress})  
        </insert>
        
        <delete id="deleteUser" parameterType="int">
            delete from user where id=#{id}
        </delete>
        
        <update id="updateUser" parameterType="int">
            update user set userAddress = 'hefei'
            where id = #{id}
        </update>
        
        <select id="selectUserByID" parameterType="int" resultType="User">
            select * from `user` where id = #{id}
        </select>
        
        <select id="selectUsers" parameterType="string" resultMap="resultListUser">
            select * from user where userName like #{userName}
        </select>
    </mapper>

    7、开始测试
    在test_src 源码目录下建立com.mb.test这个package,并建立测试类Test:

    package com.mb.test;
    
    import java.io.Reader;
    
    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.mb.mybatis.model.User;
    
    public class Test {
        private static SqlSessionFactory sqlSessionFactory;
        private static Reader reader; 
    
        static{
            try{
                reader    = Resources.getResourceAsReader("Configuration.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
        public static SqlSessionFactory getSession(){
            return sqlSessionFactory;
        }
        
        public static void main(String[] args) {
            SqlSession session = sqlSessionFactory.openSession();
            try {
            User user = (User) session.selectOne("com.mb.mybatis.models.UserMapper.selectUserByID", 1);
            System.out.println(user.getUserAddress());
            System.out.println(user.getUserName());
            } finally {
            session.close();
            }
        }
    }

    二、接下来,将讲述基于接口的操作方式,增删改查。

    目录结构:

    1、接口IUserMapper:

    package com.mb.mybatis.inter;
    
    import java.util.List;
    
    import com.mb.mybatis.model.Article;
    import com.mb.mybatis.model.User;
    
    public interface IUserMapper {
        /**
         * 增加
         * @param user
         */
        public void addUser(User user);
        
        /**
         * 删除
         * @param id
         */
        public void deleteUser(int id);
        
        /**
         * 修改
         * @param id
         */
        public void updateUser(int id);
        
        /**
         * 根据id查询用户
         * @param id
         * @return
         */
        public User selectUserByID(int id);
        
        /**
         * 查询用户
         * @param userName
         * @return
         */
        public List<User> selectUsers(String userName); 
        
        /**
         * 查询文章列表
         * @param userid
         */
        public List<User> getUserArticles(int id);
    }

    2、测试文件:

    package com.mb;
    
    import java.io.Reader;
    import java.util.List;
    
    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 org.junit.Test;
    
    import com.mb.mybatis.inter.IUserMapper;
    import com.mb.mybatis.model.Article;
    import com.mb.mybatis.model.User;
    
    /**
     * 测试类,增删改查方法测试
     * @author mabiao
     *
     */
    public class MybatisTest {
        private static SqlSessionFactory sqlSessionFactory;
        private static Reader reader; 
    
        static{
            try{
                reader    = Resources.getResourceAsReader("Configuration.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
        public static SqlSessionFactory getSession(){
            return sqlSessionFactory;
        }
        
        /**
         * 测试增加,增加后,必须提交事务,否则不会写入到数据库.
         */
        @Test
        public void addUser(){
            User user=new User();
            user.setUserAddress("合肥");
            user.setUserName("迪科");
            user.setUserAge("30");
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
                iUserMapper.addUser(user);
                session.commit();
                System.out.println("当前增加的用户 id为:"+user.getId());
            } finally {
                session.close();
            }
        }
        
        /**
         * 删除数据,删除一定要 commit.
         * @param id
         */
        @Test
        public void deleteUser(){
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserMapper iUserMapper=session.getMapper(IUserMapper.class);          
                iUserMapper.deleteUser(2);
                session.commit();            
            } finally {
                session.close();
            }
        }
        
        /**
         * 修改
         */
        @Test
        public void updateUser(){
            //先得到用户,然后修改,提交。
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
                iUserMapper.updateUser(3);
                session.commit();
            } finally {
                session.close();
            }
        }
        
        /**
         * 查询
         */
        @Test
        public void selectOne() {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                User user = (User) session.selectOne("com.mb.mybatis.inter.IUserMapper.selectUserByID", 1);
                System.out.println(user.getUserAddress());
                System.out.println(user.getUserName());
            } finally {
                session.close();
            }
        }
        
        /**
         * 查询
         */
        @Test
        public void select() {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
                User user = iUserMapper.selectUserByID(1);
                System.out.println(user.getUserAddress());
                System.out.println(user.getUserName());
            } finally {
                session.close();
            }
        }
        
        /**
         * 查询列表
         * @param userName
         */
        @Test
        public void getUserList(){
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
                List<User> users = iUserMapper.selectUsers("summer");
                for(User user:users){
                    System.out.println(user.getId()+":"+user.getUserName()+":"+user.getUserAddress());
                }
            } finally {
                session.close();
            }
        }
    }
  • 相关阅读:
    CSS基础(二)-- CSS选择器之ID选择器
    CSS基础(一)-- CSS的存在形式以及优先级
    HTML--Boby部分之fieldset标签
    HTML--Boby部分之label标签
    HTML--Boby部分之表格
    HTML--Boby部分之<img>标签
    rpm和yum的用法
    网络模型
    内存扩容
    磁盘介绍
  • 原文地址:https://www.cnblogs.com/mabiao008/p/6112320.html
Copyright © 2011-2022 走看看