Mybaits入门

1、定义

MyBatis 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

1、新建maven工程
2、修改pom配置文件,添加Mybaits依赖和connector依赖
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.8</version> 
</dependency>    
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.31</version>
</dependency>
3、在resources里新建配置mybaits.xml文件用于配置Mybaits的相关信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybaits.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"value="jdbc:mysql://localhost:3306/mybatis?                   useUnicode=true&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/yihaomen/mybatis/model/User.xml" />
    </mappers>
</configuration>

注意

其中develoment是默认的意思,意义在于默认连接的是本地数据库

4、新建com.dh包 ,新建 entity Student.java
package com.dh.entity;

public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private String gender;

    public Student() {
    }

    public Student(Integer id, String name, Integer age, String gender) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }
}
5、新建com.dh.dao包,新建StudentDao接口
package com.dh.dao;

import com.dh.entity.Student;

import java.util.List;

public interface StudentDao {
    List<Student> selectStudents();
}
6、在StudentDao接口下新建Student.xml用于配置Student对象与数据库之间的映射关系
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--唯一字符串-->
<mapper namespace="com.dh.dao.StudentDao">

    <!--    resultType 返回值类型-->
    <select id="selectStudents" resultType="com.dh.entity.Student">
        select * from student
    </select>
</mapper>
7、新建StudentDao实现类StudentDaoImpl
package com.dh.dao.Impl;

import com.dh.dao.StudentDao;
import com.dh.entity.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.InputStream;
import java.util.List;

public class StudentDaoImpl implements StudentDao {
    @Override
    public List<Student> selectStudents() {
        String resource = "mybatis.xml";
        SqlSession session = null;
        List<Student> stus = null;
        try {
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sessionFactory = new 	   SqlSessionFactoryBuilder().build(inputStream);
            session = sessionFactory.openSession();
            stus = session.selectList("com.dh.dao.StudentDao.selectStudents");
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (session !=null){
                session.close();
            }
        }
        return stus;
    }
}
8、创建测试类 MainStudent
package com.dh.corrtroller;

import com.dh.entity.Student;
import com.dh.service.StudentService;

import java.util.List;

public class MainStudent {
    public static void main(String[] args) {
    StudentService studentService = new StudentService();
        List<Student> aa = studentService.selectStudents();
        for (Student student:aa) {
            System.out.println(student);
        }
    }
}

遍历出结果,这里我在数据库中添加了几条数据作为参考

Student{id=1, name='张三', age=18, gender='男'}
Student{id=2, name='李四', age=20, gender='男'}
Student{id=3, name='小红', age=30, gender='女'}
Student{id=4, name='李红', age=28, gender='女'}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值