zoukankan      html  css  js  c++  java
  • Mybatis学习笔记2:第一个Mybatis使用实例

    1、创建数据库表

    2、安装Mybatis

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>x.x.x</version>
    </dependency>
    

    3、mybstis-config.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/mybatis" />
    				<property name="username" value="root" />
    				<property name="password" value="123456" />
    			</dataSource>
    		</environment>
    	</environments>
    	<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
    	<mappers>
    		<mapper resource="EmployeeMapper.xml" />
    	</mappers>
    </configuration>
    

    4、创建EmployeeMapper.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.atguigu.mybatis.EmployeeMapper">
    <!-- 
    namespace:名称空间;指定为接口的全类名
    id:唯一标识
    resultType:返回值类型
    #{id}:从传递过来的参数中取出id值
    
    public Employee getEmpById(Integer id);
     -->
    	<select id="selectEmp" resultType="com.atguigu.mybatis.bean.Employee">
    		select id,last_name lastName,email,gender from tbl_employee where id = #{id}
    	</select>
    </mapper>
    

    4、第一种实现方式

    public SqlSessionFactory getSqlSessionFactory() throws IOException {
    		String resource = "mybatis-config.xml";
    		InputStream inputStream = Resources.getResourceAsStream(resource);
    		return new SqlSessionFactoryBuilder().build(inputStream);
    	}
    ......
    /**
    	 * 1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
    	 * 2、sql映射文件;配置了每一个sql,以及sql的封装规则等。 
    	 * 3、将sql映射文件注册在全局配置文件中
    	 * 4、写代码:
    	 * 		1)、根据全局配置文件得到SqlSessionFactory;
    	 * 		2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
    	 * 			一个sqlSession就是代表和数据库的一次会话,用完关闭
    	 * 		3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。
    	 * 
    	 * @throws IOException
    	 */
    	@Test
    	public void test() throws IOException {
    
    		// 2、获取sqlSession实例,能直接执行已经映射的sql语句
    		// sql的唯一标识:statement Unique identifier matching the statement to use.
    		// 执行sql要用的参数:parameter A parameter object to pass to the statement.
    		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
    
    		SqlSession openSession = sqlSessionFactory.openSession();
    		try {
    			Employee employee = openSession.selectOne(
    					"com.atguigu.mybatis.EmployeeMapper.selectEmp", 1);
    			System.out.println(employee);
    		} finally {
    			openSession.close();
    		}
    	}
    

    5、第二种实现方式

    5.1、创建EmployeeMappper接口

    package com.atguigu.mybatis.dao;
    
    import com.atguigu.mybatis.bean.Employee;
    
    public interface EmployeeMapper {	
    	public Employee getEmpById(Integer id);
    }
    
    

    5.2、更改EmployeeMapper.xml ->select id改为getEmpById,mamespace改为com.atguigu.mybatis.dao.EmployeeMapper

    select id由selectEmp改为getEmpById, namespace由com.atguigu.mybatis.EmployeeMapper改为com.atguigu.mybatis.dao.EmployeeMapper ```
    Copyright © 2011-2022 走看看