首页 > 代码库 > Mybatis学习笔记之一——牛刀小试

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="http://www.mamicode.com/false"/>    <setting name="useColumnLabel" value="http://www.mamicode.com/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="http://www.mamicode.com/com.mysql.jdbc.Driver"/><!-- 配置sql驱动  -->        <property name="url" value="http://www.mamicode.com/jdbc:mysql://localhost:3306/school"/><!-- 配置数据库地,其中school为数据名称 -->        <!-- jdbc:mysql://127.0.0.1:3306/school  -->                <property name="username" value="http://www.mamicode.com/root"/><!-- 配置数据库用户名  -->        <property name="password" value="http://www.mamicode.com/********"/><!-- 配置数据库密码-->      </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学习笔记之一——牛刀小试