1、创建如下的工程
2、Student.java代码如下:
package com.abc.domain;
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;
}
}
===============================================================================================================================
StudentMapper.java代码如下:
package com.abc.mapper;
import com.abc.domain.Student;
public interface StudentMapper {
public Student getById(int id);
}
===============================================================================================================================
configuration.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>
<!--表明重用预编译的SQL语句-->
<settings>
<setting name="defaultExecutorType" value="REUSE"/>
</settings>
<!--类型别名定义。今后可只用Student来代替它冗长的
全限定名-->
<typeAliases>
<typeAlias alias="Student" type="com.abc.domain.Student"/>
</typeAliases>
<!--environments可包含多个environment元素。
每个environment配置与数据库交互的细节,这里
只需要配置一个。default属性是指在创建SqlSessionFactory
时,若没有明确指定要用哪个environment,则使用此
属性指定的-->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc"/>
<!--使用连接池的数据源配置-->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</dataSource>
</environment>
</environments>
<!--指定要用到的mapper文件。以下的resource属性告诉
MyBatis要在类路径下的resources目录下找StudentMapper.xml文件。我们将把mapper文件存放在src目录下的resources目录中,并让ant把resources目录拷贝到classes中,而classes目录会被ant添加到类路径中。-->
<mappers>
<mapper resource="resources/com/abc/mapper/StudentMapper.xml"/>
</mappers>
</configuration>
==============================================================================================================================
StudentMapper.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.abc.mapper.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>
<!--与StudentMapper接口中的getById方法对应,包括
方法名和参数类型。SQL语句中以“#{}”的形式引用参数-->
<select id="getById" parameterType="int" resultMap="studentResultMap">
SELECT *
FROM student WHERE id = #{id}
</select>
</mapper>
===============================================================================================================================
TestMyBatils代码如下:
package com.test;
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;
import com.abc.domain.Student;
import com.abc.mapper.StudentMapper;
public class TestMyBatils {
public static void main(String[] args) throws IOException{
String resource = "resources/com/abc/mapper/configuration.xml";
Reader reader = null;
reader = Resources.getResourceAsReader(resource);
SqlSessionFactory factory = new
SqlSessionFactoryBuilder()
.build(reader);
SqlSession session = factory.openSession();
StudentMapper mapper = session.getMapper(
StudentMapper.class);
Student student = mapper.getById(1);
System.out.println(student.getId()
+ " " +student.getName()
+ " " + student.getGender()
+ " " + student.getMajor()
+ " " + student.getGrade());
}
}
============================================================================================================================
CREATE TABLE student(
id int NOT NULL primary key,
name varchar2(10) NOT NULL,
gender varchar2(20) NOT NULL,
major varchar2(20) NOT NULL,
grade varchar2(4) NOT NULL
);