spring实验3

实验三 Mybatis的使用

实验目的:

  1. 了解SqlSession的使用
  2. 理解applicationConetext.xml配置文件的使用
  3. 熟悉Mapper.xml配置文件的使用
  4. 使用Mybatis完成增删改查的功能

实验类型:

验证性

实验学时:

2学时

实验内容:

实验任务1:导入Mybatis相关依赖

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.45</version>
    </dependency>

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus</artifactId>
        <version>3.3.2</version>
    </dependency>
</dependencies>

实验任务2:创建dao层接口,并编写代码

public interface CustomerDao {

    public List<Customer> query();

    public void add(Customer customer);

    public void update(Customer customer);

    @Select("select * from customer where id=#{sid}")
    public Customer queryById(@Param("sid") Integer id);

    public void delete(Integer id);
}

实验任务3:创建pojo类

public class Customer {
    private Integer id;
    private String username;
    private String jobs;
    private String phone;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getJobs() {
        return jobs;
    }

    public void setJobs(String jobs) {
        this.jobs = jobs;
    }

    public String getPhone() {
        return phone;
    }

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

    @Override
    public String toString() {
        return "Customer{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", jobs='" + jobs + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }
}

实验任务4:创建mybaits配置文件与Mapper配置文件

<?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"/>
    <typeAliases>
        <package name="com.hxci.pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 数据库连接相关配置 ,db.properties文件中的内容-->
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- mapping文件路径配置 -->
    <mappers>
        <mapper resource="mapper/customerMapper.xml"/>
        <mapper resource="mapper/studentMapper.xml"/>
    </mappers>

</configuration>
<?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.hxci.dao.CustomerDao">
    <select id="query" resultType="Customer" >
        select * from customer;
    </select>

    <insert id="add" parameterType="com.hxci.pojo.Customer">
       insert into customer(username,jobs,phone) values(#{username},#{jobs},#{phone});
    </insert>

    <update id="update" parameterType="com.hxci.pojo.Customer">
        update customer set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id};
    </update>

    <delete id="delete" parameterType="int">
        delete from customer where id=#{id};
    </delete>
</mapper>

实验任务5:创建service接口与实现类

public interface CustomerService {
    public List<Customer> query();

    public void add(Customer customer);

    public void update(Customer customer);

    public Customer queryById( Integer id);

    public void delete(Integer id);
}


 

public class CustomerServiceImpl extends BaseDao implements CustomerService {

    SqlSession session;
    CustomerDao dao;

    @Override
    public List<Customer> query() {
        session=getSqlSession();
        dao= session.getMapper(CustomerDao.class);
        List<Customer> list=dao.query();

        closeSession(session);
        return list;
    }

    @Override
    public void add(Customer customer) {
        session=getSqlSession();
        dao= session.getMapper(CustomerDao.class);
        dao.add(customer);
        session.commit();

        closeSession(session);
    }

    @Override
    public void update(Customer customer) {
        setSessionandDao();
        dao.update(customer);
        session.commit();

        closeSession(session);
    }

    @Override
    public Customer queryById(Integer id) {
        setSessionandDao();
        Customer customer=dao.queryById(id);
        closeSession(session);
        return customer;
    }

    @Override
    public void delete(Integer id) {
        setSessionandDao();
        dao.delete(id);
        session.commit();

        closeSession(session);
    }

    //设置session与dao
    public void setSessionandDao(){
        session=getSqlSession();
        dao= session.getMapper(CustomerDao.class);
    }
}

实验任务6:创建工具类

public class BaseDao {//工具类

    private static SqlSessionFactory sqlMapper;
    static {
        String resources = "mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resources);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlMapper =new SqlSessionFactoryBuilder().build(reader);
    }


    public static SqlSession getSqlSession(){
        SqlSession session=sqlMapper.openSession();
        return session;
    }

    public static void closeSession(SqlSession sqlSession){
        sqlSession.close();
    }
}

实验任务7:创建测试类,测试

public class MybatisTest{

    public static void main(String[] args) {

        CustomerService service=new CustomerServiceImpl();

        Customer customer=new Customer();

        customer.setJobs("manager");
        customer.setPhone("1111111111");
        customer.setUsername("五十六精研");

        service.add(customer);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值