Mybatis的配置过程
-
所需要的包 mybatis-3.5.1.jar 和mysql-connector-java-5.1.0-bin.jar 将这两个包导入到项目中
-
配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
在src下创建mybatis-config.xml<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--外部指定的方式 配置properties资源文件--> <properties resource="database.properties"></properties> <!--配置类型别名--> <typeAliases> <!--单个别名 <typeAlias type="com.zy.Student" alias="student"></typeAlias> --> <!--通过包名批量定义别名,使用直接用类名即别名--> <package name="com.zy" /> </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映射文件的路径--> <mapper resource="com/zy/StudentMapper.xml"/> </mappers>
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/smbms
username=root
password=root
- 创建类与表 的映射
创建一个实体类Student.java
实体类和数据库一一对应(数据库字段----类属性)
get和set方法,构造方法(无参构造和全参构造),toString方法(以便测试查看)
public class Student {
private Integer stuNo;
private String stuName;
private String stuClass;
private int stuAge;
public Student() {
super();
}
public Student(Integer stuNo, String stuName, String stuClass, int stuAge) {
super();
this.stuNo = stuNo;
this.stuName = stuName;
this.stuClass = stuClass;
this.stuAge = stuAge;
}
public Integer getStuNo() {
return stuNo;
}
public void setStuNo(Integer stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
public int getStuAge() {
return stuAge;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
@Override
public String toString() {
return "Student [stuNo=" + stuNo + ", stuName=" + stuName + ", stuClass=" + stuClass + ", stuAge=" + stuAge
+ "]";
}
}
- Mapper映射
创建StudentMapper.xml映射
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace路径为Mapper文件的路径-->
<mapper namespace="com.zy.StudentMapper">
<!--
id:唯一标记符
resultType:返回值类型
parameterType:输入值类型
通过#{属性名} 拿值
-->
<select id="selectStudent" resultType="student" parameterType="int">
select * from student where stuNo = #{stuNo}
</select>
</mapper>
-
测试类
创建测试类Test.javapackage com.zy; import java.io.IOException; import java.io.Reader; import javax.annotation.Resource; 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 StudentTest { public static void main(String[] args) throws IOException { // 通过IO流读取mybatis-config.xml中的配置 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); // 获取SqlSessionFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); // 通过SqlSessionFactory对象获取SqlSession SqlSession session = factory.openSession(); // 通过namespace+id -->Sql String statement = "com.zy.StudentMapper.selectStudent"; // ִ执行Sql Student student = session.selectOne(statement,2); // 打印输出结果 System.out.println(student); // 关闭SqlSession session.close(); } }
-
项目结构图
7.运行结果
根据学生的学号查找学号为2的学生信息