欢迎投稿

今日深度:

基于XML使用MyBatis,XML使用MyBatis

基于XML使用MyBatis,XML使用MyBatis


1、项目结构图



2、实体类Student
package net.hw.bean;

/**
 * Created by howard on 2016/4/25.
 */
public class Student {
    private int id;
    private String name;
    private String branch;
    private int percentage;
    private int phone;
    private String email;

    public Student() {
    }

    public Student(String name, String branch, int percentage, int phone, String email) {
        this.name = name;
        this.branch = branch;
        this.percentage = percentage;
        this.phone = phone;
        this.email = email;
    }

    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 getBranch() {
        return branch;
    }

    public void setBranch(String branch) {
        this.branch = branch;
    }

    public int getPercentage() {
        return percentage;
    }

    public void setPercentage(int percentage) {
        this.percentage = percentage;
    }

    public int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", branch='" + branch + '\'' +
                ", percentage=" + percentage +
                ", phone=" + phone +
                ", email='" + email + '\'' +
                '}';
    }
}
3、MyBatis配置文件SqlMapConfig
<?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>
    <typeAliases>
        <typeAlias alias="Student" type="net.hw.bean.Student"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <!--事务管理器的类型:JDBC, MANAGED-->
            <transactionManager type="JDBC"/>
            <!--数据源的类型:UNPOOLED, POOLED, JNDI-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/details"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

</configuration>
4、实体映射文件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="Student">

    <resultMap id="result" type="Student">
        <result property="id" column="ID"/>
        <result property="name" column="NAME"/>
        <result property="branch" column="BRANCH"/>
        <result property="percentage" column="PERCENTAGE"/>
        <result property="phone" column="PHONE"/>
        <result property="email" column="EMAIL"/>
    </resultMap>

    <insert id="insert" parameterType="Student">
        INSERT INTO STUDENT (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL )
        VALUES (#{name}, #{branch}, #{percentage}, #{phone}, #{email});
        <selectKey keyProperty = "id" resultType = "int" order = "AFTER">
            select last_insert_id() as id
        </selectKey>
    </insert>

    <update id="update" parameterType="Student">
        UPDATE STUDENT SET EMAIL = #{email}, NAME = #{name}, BRANCH = #{branch}, PERCENTAGE = #{percentage}, PHONE =  #{phone} WHERE ID = #{id};
    </update>

    <delete id="deleteById" parameterType="int">
        DELETE from STUDENT WHERE ID = #{id};
    </delete>

    <select id="getAll" resultMap="result">
        SELECT * FROM STUDENT;
    </select>

    <select id="getById" parameterType="int" resultMap="result">
        SELECT * FROM STUDENT WHERE ID = #{id};
    </select>

</mapper>
5、StudentDao
package net.hw.dao;

import net.hw.bean.Student;

import java.util.List;

/**
 * Created by howard on 2016/4/25.
 */
public interface StudentDao {
    void insert(Student student);

    void update(Student student);

    void deleteById(int id);

    Student getById(int id);

    List<Student> getAll();
}

6、StudentDaoImpl

package net.hw.dao.impl;

import net.hw.bean.Student;
import net.hw.dao.StudentDao;
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 org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

/**
 * Created by howard on 2016/4/25.
 */
public class StudentDaoImpl implements StudentDao {

private SqlSessionFactory sqlSessionFactory;

public StudentDaoImpl() {
    try {
            Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void insert(Student student) {
        SqlSession session = sqlSessionFactory.openSession();
        session.insert("Student.insert", student);
        System.out.println("record inserted successfully");
        session.commit();
        session.close();
    }

    public void update(Student student) {
        SqlSession session = sqlSessionFactory.openSession();
        session.update("Student.update", student);
        System.out.println("record updated successfully");
        session.commit();
        session.close();
    }

    public void deleteById(int id) {
        SqlSession session = sqlSessionFactory.openSession();
        session.delete("Student.deleteById", id);
        System.out.println("record deleted successfully");
        session.commit();
        session.close();
    }

    public Student getById(int id) {
        SqlSession session = sqlSessionFactory.openSession();
        return session.selectOne("Student.getById", id);
    }

    public List<Student> getAll() {
        SqlSession session = sqlSessionFactory.openSession();
        return session.selectList("Student.getAll");
    }
}
7、测试程序StudentDaoImplTest
package net.hw.dao.impl;

import net.hw.bean.Student;
import net.hw.dao.StudentDao;
import org.junit.Test;

import javax.sound.midi.Soundbank;
import java.io.IOException;
import java.util.List;

/**
 * Created by howard on 2016/4/25.
 */
public class StudentDaoImplTest {
    @Test
    public void testInsert() {
        Student student = new Student("Mohammad", "It", 80, 984803322, "Mohammad@gmail.com");
        StudentDao studentDao = new StudentDaoImpl();
        studentDao.insert(student);
    }

    @Test
    public void testUpdate() {
        StudentDao studentDao = new StudentDaoImpl();
        Student student = studentDao.getById(2);
        student.setEmail("Mohamma@163.com");
        studentDao.update(student);
    }

    @Test
    public void testDelete() {
        StudentDao studentDao = new StudentDaoImpl();
        studentDao.deleteById(2);
    }

    @Test
    public void testGetById() {
        StudentDao studentDao = new StudentDaoImpl();
        Student student = studentDao.getById(1);
        System.out.println(student);
    }

    @Test
    public void testGetAll() {
        StudentDao studentDao = new StudentDaoImpl();
        List<Student> students = studentDao.getAll();
        for (Student student : students) {
            System.out.println(student);
        }
    }
}

执行testInsert()方法:


执行testUpdate()方法:


执行testGetById()方法:


执行testGetAll()方法:


执行testDelete()方法:


查看评论

www.htsjk.Com true http://www.htsjk.com/shujukunews/10156.html NewsArticle 基于XML使用MyBatis,XML使用MyBatis 1、项目结构图 2、实体类Student package net.hw.bean;/** * Created by howard on 2016/4/25. */public class Student { private int id; private String name; private String branch; private int pe...
评论暂时关闭