• 1.mybatis的基本应用


    1.mybatis的基本应用

    一、建立数据的数据模型

    1.1建立表的结构如图:

     

    1.2手动填入测试的数据

    目前为止,数据库的数据模型建立就算完成了。

    二、建立好测试web项目,写好javabean,并配置相应xml文件

    2.1根据数据数据类型建好JavaBean

    2.2下图为项目的目录结构,和需要的包;

     

     

     

    2.3将mybatis官网下的源码包中的测试例子中的核心配置文件Configuration.xml和对应的数据模型文件拷贝到项目中的org.config和org.model包中

    此配置文件的路径:mybatis-3-mybatis-3.4.1src estjavaorgapacheibatissubmittedcomplex_property

    2.4将User.xml更名为Person.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">
    <!-- 同一个项目中的resultMap是不能重复的,所以需要namespace来进行分包 -->
    <mapper namespace="Person">
        <!-- 配置数据库映射,Hibernate叫mapping(映射)mybatis叫Alias(别名) -->
      <resultMap type="PersonAlias" id="PersonResult">
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="age" jdbcType="INTEGER" property="age"/>
        <result column="height" jdbcType="DOUBLE" property="height"/>
      </resultMap>
    
        <!-- 配置sql语句,配置传入参数的类型,并设置好id,resultMap要与上面的映射匹配,这个语句传入的参数为空 -->
      <select id="getPersonList" resultMap="PersonResult">
        SELECT * FROM Person 
      </select>
    
    </mapper>

    2.5配置mybatis核心配置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>
      <settings>
        <setting name="useGeneratedKeys" value="false"/>
        <setting name="useColumnLabel" value="true"/>
      </settings>
    
      <!-- 配置对应的javabean的路径 -->
      <typeAliases>
        <typeAlias alias="PersonAlias" type="org.model.Person"/>
      </typeAliases>
    
      <!-- 配置数据库的连接信息 -->
      <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC">
            <property name="" value=""/>
          </transactionManager>
          <dataSource type="UNPOOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://127.0.0.1:3306/testmybatis"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
          </dataSource>
        </environment>
      </environments>
    
      <!-- 配置映射类xml文件的路径 -->
      <mappers>
        <mapper resource="org/model/Person.xml"/>
      </mappers>
    
    </configuration>

    三、书写MybatisSqlSessionFacoty、PersonDao、PersonDaoImp类

    3.1书写MybatisSqlSessionFacoty

    package org.sqlsessionfactory;
    
    import java.io.Reader;
    
    import java.io.IOException;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    /**
     * 获取操作数据库的session
     * @author Administrator
     *
     */
    public class MybatisSessionFactory {
        public SqlSession getSqlSession() throws IOException {
            // 通过配置文件读取连接信息
            Reader reader = Resources.getResourceAsReader("org/config/Configuration.xml");
            // 通过配置信息构建sqlSessionnFactory
            SqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            // 通过sqlSessionFactory打开session
            SqlSession sqlSession = SqlSessionFactory.openSession();
            return sqlSession;
        }
    }

    3.2书写PersonDao

    package org.dao;
    
    import java.util.List;
    
    import org.model.Person;
    public interface PersonDao {
    	/**
    	 * 1.查询所有登记的人
    	 * @return List<Person>
    	 */
    	public List<Person> GetPersonList ();
    }
    

    3.3书写PersonDaoImp

    package org.dao.imp;
    
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    import org.dao.PersonDao;
    import org.model.Person;
    import org.sqlsessionfactory.MybatisSessionFactory;
    
    public class PersonDaoImp implements PersonDao {
    
    	@Override
    	public List<Person> GetPersonList() {
    		MybatisSessionFactory mybataitssqlSession = new MybatisSessionFactory();
    		SqlSession sqlSession = null;
    		try {
    			sqlSession = mybataitssqlSession.getSqlSession();
    			List<Person> li = sqlSession.selectList("Person.getPersonList");
    			return li;
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    			return null;
    		} finally {
    			sqlSession.close();
    		}
    	}
    	
    }
    

    四、写测试类,测试代码

    4.1书写test1

    package org.test;
    
    import java.util.List;
    
    import org.dao.PersonDao;
    import org.dao.imp.PersonDaoImp;
    import org.model.Person;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    /**
     * 测试查询所有person
     * @author Administrator
     *
     */
    public class test1 {
    	public static void main(String[] args) throws JsonProcessingException {
    		PersonDao pDao = new PersonDaoImp();
    		List<Person> li = pDao.GetPersonList();
    		System.out.println(new ObjectMapper().writeValueAsString(li));
    	}
    }
    

    4.2运行看结果

     OK,测试成功,数据正常返回!

    ps:项目最终目录

                                                                     

     

  • 相关阅读:
    关于浏览器类型和版本号的思考
    safari浏览器cookie问题
    整理轻量级的前端分离规范
    【jquery插件】-网页下雪效果
    剑指offer——面试题15.2:判断两个整数m和n的二进制中相差多少位
    剑指offer——面试题15.1:判断一个数是否为2的整数次方
    剑指offer——面试题15:二进制中 1的个数
    剑指offer——面试题14:剪绳子
    剑指offer——面试题11:旋转数组的最小数字
    剑指offer——面试题11:快速排序
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/7271615.html
Copyright © 2020-2023  润新知