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

Posted 云中志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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());
		}
	}
	
}

  

 

以上是关于Mybatis学习笔记之一——牛刀小试的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis 学习笔记总结

libevent学习笔记 —— 牛刀小试:简易的响应式服务器

小白自我提高学习设计模式笔记—装饰者模式在Android开发的小试

MyBatis:学习笔记——关联查询

小白自我提高学习设计模式笔记—装饰者模式在Android开发的小试

MyBatis-05-笔记