zoukankan      html  css  js  c++  java
  • mybatis实战教程(mybatis in action)之一:开发环境搭建

    文章转载自http://www.yihaomen.com/article/java/302.htm

    什么是mybatis
    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

    orm工具的基本思想
    无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:
    1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
    2. 由sessionfactory  产生 session
    3. 在session 中完成对数据的增删改查和事务提交等.
    4. 在用完之后关闭session 。

    5. 在Java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

    mybatis实战教程(mybatis in action)之一:开发环境搭建

    mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。
    首先建立一个名字为 MyBaits 的 dynamic web project  
    1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。
    2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录.
    3. 创建mysql 测试数据库和用户表,注意,这里采用的是 utf-8 编码

    创建用户表,并插入一条测试数据
    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');

    到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。
    1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource.


    2. 设置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.yihaomen.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" />
                <property name="username" value="root"/>
                <property name="password" value="password"/>
                </dataSource>
            </environment>
        </environments>
        
        <mappers>
            <mapper resource="com/yihaomen/mybatis/model/User.xml"/>
        </mappers>
    </configuration>

    3. 建立与数据库对应的 java class,以及映射文件.
    在src_user下建立package:com.yihaomen.mybatis.model ,并在这个 package 下建立 User 类:

    package com.yihaomen.mybatis.model;
    
    public class User {
        
        private int id;
        private String userName;
        private String userAge;
        private String userAddress;
        
        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;
        }
    
    }

    同时建立这个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.yihaomen.mybatis.models.UserMapper">
        <select id="selectUserByID" parameterType="int" resultType="User">
            select * from `user` where id = #{id}
        </select>
    </mapper>

    下面对这几个配置文件解释下:
    1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名非常重要,你在 具体的类的映射中,比如User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式,后面再说。
    2.  Configuration.xml 里面 的<mapper resource="com/yihaomen/mybatis/model/User.xml"/>是包含要映射的类的xml配置文件。
    3. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等.

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

    package com.yihaomen.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.yihaomen.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.yihaomen.mybatis.models.UserMapper.selectUserByID", 1);
            System.out.println(user.getUserAddress());
            System.out.println(user.getUserName());
            } finally {
            session.close();
            }
        }
    }

    现在运行这个程序,是不是得到查询结果了。恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。
    整个工程目录结构如下:

    com.yihaomen.mybatis.models.UserMapper 确实不存在 但是在这里 只是取名而已 。可以运行成功的 (新手的理解 如有错误求大神指正)
  • 相关阅读:
    HDU 5486 Difference of Clustering 图论
    HDU 5481 Desiderium 动态规划
    hdu 5480 Conturbatio 线段树 单点更新,区间查询最小值
    HDU 5478 Can you find it 随机化 数学
    HDU 5477 A Sweet Journey 水题
    HDU 5476 Explore Track of Point 数学平几
    HDU 5475 An easy problem 线段树
    ZOJ 3829 Known Notation 贪心
    ZOJ 3827 Information Entropy 水题
    zoj 3823 Excavator Contest 构造
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/5652471.html
Copyright © 2011-2022 走看看