zoukankan      html  css  js  c++  java
  • 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());
    		}
    	}
    	
    }
    

      

     

  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6828334.html
Copyright © 2011-2022 走看看