• MyBatis 学习



    title: ’ MyBatis 学习’
    date: 2017-09-01 16:56:50
    tags:

    MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

    MyBatis 通过 SqlSessionFactory 来管理数据库,SqlSessionFactory 可以通过 SqlSessionFactory 获取。SqlSessionFactory 通过 SqlSessionFactoryBuilder 获取,SqlSessionFactoryBuilder 通过 XML 配置文件获取。

    从 XML 中构建 SqlSessionFactoryBuilder

    新建 MyBatis.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>
    
    	<!-- 加载 jdbc配置文件 -->
    	<properties resource="jdbc.properties"></properties>
    	
    	<environments default="development">
    	
    		<environment id="development">
    			<transactionManager type="JDBC" />
    			<dataSource type="POOLED">
    				<property name="driver" value="${jdbc.driver}" />
    				<property name="url" value="${jdbc.url}" />
    				<property name="username" value="${jdbc.username}" />
    				<property name="password" value="${jdbc.password}" />
    			</dataSource>
    		</environment>
    		
    	</environments>
    	
    	<mappers>
    		<package name="com.zst.mapper" />
    	</mappers>
    	
    </configuration>
    

    从 MyBatis.xml 文件中获取 SqlSessionFactoryBuilder 对象,之后获取 SqlSessionFactory 以及 SqlSession

    SqlSession 对象表示服务器和数据库的一次会话,非线程安全,不能定义在类中,可能会出现多个线程公用这个对象,只能定义在方法中。

    public SqlSessionFactory getSqlSessionFactroy(){//获取 SqlSessionFactory 
    		String resource = "mybatis-config.xml";
    		InputStream inputStream=null;
    		try {
    			inputStream = Resources.getResourceAsStream(resource);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    		return sqlSessionFactory;
    	}
    
    SqlSessionFactory sqlSessionFactory=getSqlSessionFactroy();
    SqlSession session = sqlSessionFactory.openSession();
    

    接口式编程

    把接口和对应的 Mapper.xml 文件放在同一个包下,XML 文件中对应的 namespace=“全类名”,SQL语句的 id 是接口中的方法名,并且 Mapper.xml 文件名称相同: EmployeeMapper.java 接口 对应 EmployeeMapper.xml 文件

    public interface EmployeeMapper {
    
    	public Employee getEmployeeByID(Integer id);
    	
    }
    
    <?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.zst.mapper.EmployeeMapper">
    <!-- namespace 将 xml 文件和 接口文件关联 -->
    
    	<select id="getEmployeeByID" resultType="com.zst.bean.Employee" parameterType="Integer">
    		select * from tbl_employee where id = #{id}
    	</select>
    	
    </mapper>
    
  • 相关阅读:
    1245. Tree Diameter
    771. Jewels and Stones
    830. Positions of Large Groups
    648. Replace Words
    647. Palindromic Substrings
    435. Non-overlapping Intervals
    646. Maximum Length of Pair Chain
    645. Set Mismatch
    242. Valid Anagram
    438. Find All Anagrams in a String
  • 原文地址:https://www.cnblogs.com/Zhoust/p/14994610.html
Copyright © 2020-2023  润新知