首页 > 代码库 > MyBatis简单源码分析1 - 环境搭建
MyBatis简单源码分析1 - 环境搭建
本文以MyBatis独立使用的情形简单地分析MyBatis的源码,记录自己学习的过程
重要的Java代码如下:
主程序:
1 package com.suntao.learning.debug; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.List; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 import org.apache.ibatis.session.SqlSessionFactory;10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;11 12 import com.suntao.learning.dao.EmployeeDao;13 import com.suntao.learning.dto.Employee;14 15 public class DebugMyBatis {16 private final static String CONFIGURATION_XML = "config.xml";17 18 public static void main(String[] args) {19 try {20 InputStream inputStream = Resources.getResourceAsStream(CONFIGURATION_XML);21 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);22 SqlSession sqlSession = sqlSessionFactory.openSession(true);23 EmployeeDao employeeDao = sqlSession.getMapper(EmployeeDao.class);24 Employee employee = new Employee("test", "M", "XXXXXXXXXXX");25 int ret = employeeDao.insertEmployee(employee);26 System.out.println(ret);27 List<Employee> employees = employeeDao.findAllEmployees();28 for (Employee e : employees) {29 System.out.println(e);30 }31 } catch (IOException e) {32 e.printStackTrace();33 }34 }35 }
EmployeeDao.java:
1 package com.suntao.learning.dao; 2 3 import java.util.List; 4 5 import com.suntao.learning.dto.Employee; 6 7 public interface EmployeeDao { 8 Employee findEmployeeById(String employeeId); 9 List<Employee> findAllEmployees();10 int insertEmployee(Employee e);11 }
Employee.java:
1 package com.suntao.learning.dto; 2 3 public class Employee { 4 private int id; 5 private String name; 6 private String gender; 7 private String tel; 8 9 public Employee() {}10 11 public Employee(String name, String gender, String tel) {12 this.name = name;13 this.gender = gender;14 this.tel = tel;15 }16 17 public int getId() {18 return id;19 }20 21 public void setId(int id) {22 this.id = id;23 }24 25 public String getName() {26 return name;27 }28 29 public void setName(String name) {30 this.name = name;31 }32 33 public String getGender() {34 return gender;35 }36 37 public void setGender(String gender) {38 this.gender = gender;39 }40 41 public String getTel() {42 return tel;43 }44 45 public void setTel(String tel) {46 this.tel = tel;47 }48 49 @Override50 public String toString() {51 return id + " " + name + " " + gender + " " + tel;52 }53 54 }
重要的配置文件如下:
config.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 <properties resource="jdbc.properties"></properties> 5 <!-- 配置别名 --> 6 <typeAliases> 7 <typeAlias type="com.suntao.learning.dto.Employee" alias="Employee" /> 8 </typeAliases> 9 10 <!-- 配置环境变量 -->11 <environments default="development">12 <environment id="development">13 <transactionManager type="JDBC" />14 <dataSource type="POOLED">15 <property name="driver" value="${driver}" />16 <property name="url" value="${url}" />17 <property name="username" value="${username}" />18 <property name="password" value="${password}" />19 </dataSource>20 </environment>21 </environments>22 23 <!-- 配置mappers -->24 <mappers>25 <mapper resource="employee.xml" />26 </mappers>27 </configuration>
Mapper文件employee.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3 <mapper namespace="com.suntao.learning.dao.EmployeeDao"> 4 <resultMap id="EmployeeMap" type="Employee"> 5 <result column="ID" jdbcType="INTEGER" property="id" /> 6 <result column="NAME" jdbcType="VARCHAR" property="name" /> 7 <result column="GENDER" jdbcType="VARCHAR" property="gender" /> 8 <result column="TEL" jdbcType="VARCHAR" property="tel" /> 9 </resultMap>10 <select id="findEmployeeById" parameterType="string" resultType="Employee"> 11 select * from employee t where t.id = #{employeeId} 12 </select>13 <select id="findAllEmployees" resultType="Employee"> 14 select * from employee t15 </select>16 <insert id="insertEmployee" parameterType="Employee" useGeneratedKeys="true" keyProperty="id">17 insert into employee18 <trim prefix="(" suffix=")" suffixOverrides=",">19 <if test="name != null">20 name,21 </if>22 <if test="gender != null">23 gender,24 </if>25 <if test="tel != null">26 tel,27 </if>28 </trim>29 <trim prefix="values (" suffix=")" suffixOverrides=",">30 <if test="name != null">31 #{name, jdbcType=VARCHAR},32 </if>33 <if test="gender != null">34 #{gender, jdbcType=VARCHAR},35 </if>36 <if test="tel != null">37 #{tel, jdbcType=VARCHAR},38 </if>39 </trim> 40 </insert>41 </mapper>
MyBatis简单源码分析1 - 环境搭建
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。