文章目录
IDEA下MyBatis简单项目
1、idea新建java project,建好包目录结构,导入jar包
新建lib文件夹(包),加入2个jar包文件(mybatis-3.5.3.jar,mysql-connector-java-8.0.15.jar),并在jar包上右键,选择Add as Library。可参考idea添加jar包2种方式
2、数据库建表
#登录 用户名root,密码123
#mysql -u root -p
#按提示输入密码123
create database mydb;
use mydb;
create table student(
stuno int(10),
stuname varchar(20),
stuage int(10),
graname varchar(20),
primary key(stuno)
);
desc student;
insert into student(stuno,stuname,stuage,graname)
values(1,'zs',18,'大一'),
(2,'ls',19,'大二'),
(3,'ww',20,'大四');
select * from student;
3、新建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="db.properties"/>
<!-- 为pojo起别名-->
<typeAliases>
<typeAlias type="com.nftc.mapper.StudentMapper" alias="student"/>
</typeAliases>
<!-- 指定数据库默认环境-->
<environments default="development">
<!--配置一个数据库环境-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
</environments>
<!-- 指定mapper.xml文件来源-->
<mappers>
<mapper resource="com/nftc/mapper/StudentMapper.xml"/>
</mappers>
</configuration>
新建db.properties文件,提供参数给mybatis-config.xml
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mydb?serverTimezone=GMT%2B8
mysql.username=root
mysql.password=123
4、entity类(即pojo): Student.java
package com.nftc.entity;
public class Student {
private Integer stuNo;
private String stuName;
private Integer stuAge;
private String graName;
public Student() {
}
public Student(Integer stuNo, String stuName, Integer stuAge, String graName) {
this.stuNo = stuNo;
this.stuName = stuName;
this.stuAge = stuAge;
this.graName = graName;
}
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 Integer getStuAge() {
return stuAge;
}
public void setStuAge(Integer stuAge) {
this.stuAge = stuAge;
}
public String getGraName() {
return graName;
}
public void setGraName(String graName) {
this.graName = graName;
}
@Override
public String toString() {
return "Student{" +
"stuNo=" + stuNo +
", stuName='" + stuName + '\'' +
", stuAge=" + stuAge +
", graName='" + graName + '\'' +
'}';
}
}
5、Mapper接口: StudentMapper.java
package com.nftc.mapper;
import com.nftc.entity.Student;
public interface StudentMapper {
public Student getStudentByStuNO(Integer stuNo);
}
6、Mapper映射文件: 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.nftc.mapper.StudentMapper">
<resultMap id="stuMap" type="com.nftc.entity.Student">
<id property="stuNo" column="stuno"/>
<result property="stuName" column="stuname"/>
<result property="stuAge" column="stuage"/>
<result property="graName" column="graname"/>
</resultMap>
<select id="getStudentByStuNO" parameterType="int" resultType="student" resultMap="stuMap">
select stuno ,stuname ,stuage ,graname
from student
where stuno=#{stuNo}
</select>
</mapper>
7、测试: TestMybatis.java
package com.nftc.test;
import com.nftc.entity.Student;
import com.nftc.mapper.StudentMapper;
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.InputStream;
public class TestMybatis {
public static void main(String[] args) {
String configFile = "mybatis-config.xml";
InputStream input = null;
try{
input = Resources.getResourceAsStream(configFile);
}catch (IOException e){
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
SqlSession sqlSession = sqlSessionFactory.openSession();
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
Student student = studentMapper.getStudentByStuNO(1);
System.out.println(student);
}
}
控制台打印结果:
Student{stuNo=1, stuName='zs', stuAge=18, graName='大一'}