zoukankan      html  css  js  c++  java
  • 1.myBatis搭建环境

    到此,前期的开发环境准备工作全部完成。mybatis  搭建环境开始

    下载资源包地址:https://github.com/mybatis/mybatis-3/releases

     1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:

    2、添加相应的jar包

      【mybatis

             mybatis-3.1.1.jar

      【MYSQL驱动包】
        mysql-connector-java-5.1.7-bin.jar

              

    3、创建数据库和表,针对MySQL数据库

      SQL脚本如

    到此,前期的开发环境准备工作全部完成。

    2.2、使用MyBatis查询表中的数据

      1、添加Mybatis的配置文件mybatis-config.xml  ---mybatis主配置文件

      在src目录下创建一个mybatis-config.xml文件,如下图所示:

    mybatis-config.xml文件中的内容如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration
     3  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4  "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 <configuration>
     6 
     7     <environments default="development">
     8     <!-- 指定使用哪个environment -->
     9         <environment id="development">
    10         <!-- 事物管理器 -->
    11             <transactionManager type="JDBC" />
    12             <!-- 连接池 POOLED是mybatis提交的连接池 -->
    13             <dataSource type="POOLED">
    14                 <property name="driver" value="com.mysql.jdbc.Driver" />
    15                 <property name="url" value="jdbc:mysql:///1708_mybatis" />
    16                 <property name="username" value="root" />
    17                 <property name="password" value="root" />
    18             </dataSource>
    19         </environment>
    20     </environments>
    21     <!-- Mapper文件 -->
    22     <mappers>
    23         <mapper resource="com/pxf/mapper/IUserDao.xml" />
    24     </mappers>
    25 </configuration>

    2、定义表所对应的实体类,如下图所示:

    User类的代码如下:

    package com.pxf.entity;
    
    public class User {
    	private Integer id;
    
    	private String name;
    
    	private String password;
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	public User() {
    		super();
    	}
    
    	public User(Integer id, String name, String password) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.password = password;
    	}
    
    	@Override
    	public String toString() {
    		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    	}
    
    }
    

    3、定义一个接口,IUserDao

      创建一个com.pxf.dao包,专门用于存放sql映射文件,在包中创建一个UserDao文件,如下图所示:

    package com.pxf.dao;
    
    import com.pxf.entity.User;
    
    public interface IUserDao {
    	public User getUserById(Integer id);
    }
    

      

     

    4、定义操作t_user表的sql映射文件IUserDao.xml

      创建一个com.pxf.mapper包,专门用于存放sql映射文件,在包中创建一个UserDao.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">
    <!--namespace指接口的全类名 -->
    <mapper namespace="com.pxf.dao.IUserDao">
        <!-- 
             id:方法名称  id属性值必须是唯一
             parameterType:查询的时候使用的参数范围
             resultType:查询返回的结果集类型 
        -->
        <select id="getUserById" parameterType="java.lang.Integer" resultType="com.pxf.entity.User">
            select * from t_user where
            id = #{id}
        </select>
    </mapper>

    5、编写测试代码:执行定义的select语句

        先测试环境,看能不能生成sqlSession

    package com.qf.dao;
    
    import static org.junit.Assert.*;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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;
    
    public class SqlSessionFactoryTest {
    
        @Test
        public void testSqlSessionFactory() {
            // 1.指定MyBatis的配置文件
            String resource = "mybatis-config.xml";
            // 2.把配置文件读成要给输入流
            try {
                InputStream inputStream = Resources.getResourceAsStream(resource);
                // 3.创建SqlSessionFactoryBuilder用来创建工厂
                SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
                // 4.构建工厂
                SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
                // 5.通过SqlSessionFactory创建sqlSession
                SqlSession sqlSession = sqlSessionFactory.openSession();
    
                System.out.println(sqlSession);
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    }

    亲测可以生成。

      测试代码:

    package com.qf.dao;
    
    import static org.junit.Assert.*;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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.Before;
    import org.junit.Test;
    
    import com.qf.entity.User;
    
    public class UserDaoTest {
    
        @Test
        public void testGetUserById() {
            
            // 1.指定MyBatis配置文件
            String resource = "mybatis-config.xml";
            InputStream ips = null;
            try {
                // 2.把配置文件转成流
    //            InputStream ips = this.getClass().getClassLoader().getResourceAsStream(resource);
                ips = Resources.getResourceAsStream(resource);
                
                // 3.通过SqlSessionFactoryBuilde构架工厂
                SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
                
                // 4.构建工厂
                SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(ips);
                
                // 5.获取SqlSession
                SqlSession sqlSession = sqlSessionFactory.openSession();
                
                // 6.获取接口
                IUserDao userDao = sqlSession.getMapper(IUserDao.class);
                
                User user = userDao.getUserById(9);
                
                System.out.println(user);
                
                sqlSession.close();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                if(ips != null){
                    try {
                        ips.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            
        }
    }

    环境搭建总结:

    2.搭建环境
    	1)导入jra包
    	2)配置文件
    		a)mybatis-config.xml
    			1)数据库的链接参数
    			2)连接池
    				1)POOLED:是MyBatis提供的一个连接池
    			3)事务管理器
    				1)用jdbc的事务管理器
    			4)Mapper文件的路径
    		2)Mapper文件
    			1)命名:和接口保持一致
    			2)位置:专门建一个mapper包用来存放
    			3)内容
    				a)<mapper>
    					1)namespace:接口的全类名
    					2)<select>
    						1)id:方法名称
    						2)resultType:返回类型 返回的是集合
    						3)parameterType:方法查询使用的参数类型  
    	3)使用
    		1)指定MyBatis的配置文件,转成输入流
    		2)创建SqlSessionFactoryBuilder用来创建SqlSessionFactory
    		3)用SqlSessionFactory创建SqlSession
    		4)参数数据库
    

     新手写帖,有什么不好的地方希望大家指出。

  • 相关阅读:
    html-----vedio标签(HTML5新标签VIDEO在IOS上默认全屏播放)
    JS---控制键盘事件
    js事件监听-addEventListener (w3c标准) 和 attachEvent(ie)
    html5 -----audio标签
    花点时间搞清top、clientTop、scrollTop、offsetTop
    vue手机端横屏竖屏切换
    spring事务
    跨域
    java8 lambda 与 stream
    vueAdmin使用动态路由时踩坑
  • 原文地址:https://www.cnblogs.com/tournesol/p/8094063.html
Copyright © 2011-2022 走看看