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:项目最终目录

                                                                 

 

原文地址:https://www.cnblogs.com/Nick-Hu/p/7271615.html