• Mybatis学习笔记之一——牛刀小试


    1、Mybaits核心对象SqlSession的作用:

      (1)向SQL语句传入参数;

      (2)执行SQl语句;

      (3)获取执行SQL语句的结果;

      (4)事务的控制;

    2、核心配置文件(Configration.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>
    
      <typeAliases>
        <typeAlias alias="UserAlias" type="org.apache.ibatis.submitted.complex_property.User"/>
      </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"/><!-- 配置sql驱动  -->
            <property name="url" value="jdbc:mysql://localhost:3306/school"/><!-- 配置数据库地,其中school为数据名称 -->
            <!-- jdbc:mysql://127.0.0.1:3306/school  -->
            
            <property name="username" value="root"/><!-- 配置数据库用户名  -->
            <property name="password" value="********"/><!-- 配置数据库密码-->
          </dataSource>
        </environment>
      </environments>
      <mappers>
        <mapper resource="com/sysker/config/Students.xml"/><!-- 需要导入的xml配置文件,一般用于配置表格数据表格 -->
      </mappers>
    </configuration>
    

      

      

    3、获取SqlSession:

      (1)通过配置文件获取数据库连接相关信息:

    Reader reader = Resources.getResourceAsReader("com/sysker/config/Configuration.xml");
    

      (2)通过配置信息构建SqlSessionFactory:

    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    

      (3)通过sqlSessionFactory打开数据库会话:

    session = sqlSessionFactory.openSession();
    

      下面是完整代码:

    package com.sysker.db;
    
    import java.io.IOException;
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    /**
     * 访问数据库类
     *
     */
    public class DBAccess {
    	public SqlSession getSqlSession() throws IOException{
    		SqlSession session =null;
    			//通过配置文件获取数据库连接信息
    			Reader reader = Resources.getResourceAsReader("com/sysker/config/Configuration.xml");
    			//通过配置信息构建一个SqlSessionFactory
    			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    			//通过sqlsessionFactory打开一个数据库会话
    			session = sqlSessionFactory.openSession();
    			
    		return session;
       }
     }
    

     4、配置与数据表格相关的sql语句(Students.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="Studnets">
    
      <resultMap type="com.sysker.beans.Students" id="StudentsResult">
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="classname" jdbcType="VARCHAR" property="classname"/>
        <result column="sex" jdbcType="VARCHAR" property="sex"/>
        <result column="age" jdbcType="VARCHAR" property="age"/>
      </resultMap>
    
      <select id="getAllStudents" resultMap="StudentsResult">
        SELECT id,name,classname,sex,age FROM student
      </select>
    </mapper>

      5、通过Dao层来执行SQL操作:

    package com.sysker.dao;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    
    import com.sysker.beans.Students;
    import com.sysker.db.DBAccess;
    import com.sysker.jdbc.DBContol;
    
    public class StudentDAO {
    	
    	
    	public List<Students> getAllStudents(){
    		DBAccess dbAccess = new DBAccess();
    		List<Students> studentsList = new ArrayList<Students>();
    		SqlSession sqlSession = null;
    		try {
    			sqlSession = dbAccess.getSqlSession();
    			//通过sqlSession执行sql语句
    			studentsList = sqlSession.selectList("Students.getAllStudents");
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			if(sqlSession!=null){
    			sqlSession.close();
    			}
    		}
    		
    		return studentsList;
    		
    	}
    	
    	public static void main(String[] args) {
    		StudentDAO studentDAO = new StudentDAO();
    		List<Students> studentsList = new ArrayList<Students>();
    		studentsList = studentDAO.getAllStudents();
    		for (Students students : studentsList) {
    			System.out.println(students.toString());
    		}
    	}
    	
    }
    

      

     

  • 相关阅读:
    收集一些特殊的符号
    腾讯笔试有感
    Lazy Load, 延迟加载图片的 jQuery 插件
    腾讯实习生笔试题
    IE捉迷藏bug详解(躲猫猫)
    使用SQL Server 2000 全文检索
    一篇比较不错的关于masterpage的文章
    ASP.NET中对表单输入行有选择验证
    在WSS中高亮显示搜索结果
    WebPart安装位置对FrontPager的影响
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6828334.html
Copyright © 2020-2023  润新知