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)参数数据库
    

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

  • 相关阅读:
    git线上操作
    IDEA快捷方式
    Java 四种线程池
    java 获取当前天之后或之前7天日期
    如何理解AWS 网络,如何创建一个多层安全网络架构
    申请 Let's Encrypt 通配符 HTTPS 证书
    GCE 部署 ELK 7.1可视化分析 nginx
    使用 bash 脚本把 AWS EC2 数据备份到 S3
    使用 bash 脚本把 GCE 的数据备份到 GCS
    nginx 配置 https 并强制跳转(lnmp一键安装包)
  • 原文地址:https://www.cnblogs.com/tournesol/p/8094063.html
Copyright © 2011-2022 走看看