使用Mybatis把握四个要点:
1.Mybatis配置文件mybatis-config.xml
2.Mybatis映射文件MyMapper.xml
3.对应映射文件的接口MyMapper.java
4.实体类My.java
1.mybatis-config.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> <properties resource="properties/mybatis-config.properties"> <property name="username" value="test"/> <property name="password" value="test123"/> </properties> <settings> <!--配置默认的执行器:重用预处理语句--> <setting name="defaultExecutorType" value="REUSE"/> </settings> <typeAliases> <typeAlias alias="Student" type="com.agcro.myapp.model.Student"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/agcro/myapp/data/StudentMapper.xml"/> </mappers> </configuration>
2.MyMapper.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="com.agcro.myapp.data.StudentMapper"> <resultMap id="studentResultMap" type="Student"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="gender" column="gender"/> <result property="major" column="major"/> <result property="grade" column="grade"/> </resultMap> <select id="getById" parameterType="int" resultMap="studentResultMap"> select * from student where id=#{id} </select> </mapper>
3.映射接口文件MyMapper.java
package com.agcro.myapp.data; import com.agcro.myapp.model.Student; /** * Created by x on 13-6-23. */ public interface StudentMapper { public Student getById(int id); }
4.实体类My.java
public class Student { private int id; private String name; private String gender; private String major; private String grade; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } }
最后是业务测试
import com.agcro.myapp.data.StudentMapper; import com.agcro.myapp.model.Student; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.Reader; /** * Created by x on 13-6-23. */ public class test { public static void main(String[] args) { //mybatis-config.xml中的mapper配置类似,告诉MyBatis //应读取的核心配置文件 String resource = "com/agcro/myapp/data/mybatis-config.xml"; Reader reader = null; try{ reader = Resources.getResourceAsReader(resource); }catch(IOException e) { e.printStackTrace(); } //创建SqlSessionFactory实例。没有指定要用到的 //environment,则使用默认的environment SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession = sqlSessionFactory.openSession(); try{ StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); Student student = mapper.getById(1); if(student != null) { System.out.println("姓名: "+student.getName() +"\n专业: "+student.getMajor()); } else { System.out.println("没有找到。"); } } finally { sqlSession.close(); } } }
最后补充上面.properties配置文件mybatis-config.properfies
#数据库 driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/test username=test password=test123