使用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