IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> spring实验4 -> 正文阅读

[Java知识库]spring实验4

实验四 Spring整合Mybatis

实验目的:

  1. 了解Spring整合Mybatis的作用
  2. 学会Spring整合Mybatis
  3. 完成Student增删改查的功能

实验类型:

????????验证性

实验学时:????????

????????2学时

实验内容:

????????实验任务1:导入Spring整合Mybatis相关依赖

<dependencies>
????<!--spring包-->
????<dependency>
????????<groupId>org.springframework</groupId>
????????<artifactId>spring-webmvc</artifactId>
????????<version>5.2.0.RELEASE</version>
????</dependency>
????<dependency>
????????<groupId>org.springframework</groupId>
????????<artifactId>spring-tx</artifactId>
????????<version>4.3.14.RELEASE</version>
????</dependency>
????<dependency>
????????<groupId>org.springframework</groupId>
????????<artifactId>spring-jdbc</artifactId>
????????<version>4.3.14.RELEASE</version>
????</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>

????<!--dbcp连接池-->
????<dependency>
????????<groupId>commons-dbcp</groupId>
????????<artifactId>commons-dbcp</artifactId>
????????<version>1.4</version>
????</dependency>
????<dependency>
????????<groupId>commons-pool</groupId>
????????<artifactId>commons-pool</artifactId>
????????<version>1.6</version>
????</dependency>
</dependencies>

实验任务2:在com.hxci.pojo中创建Student类

public class Student {
????private Integer id;
????private String username;
????private String sno;

????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 getSno() {
????????return sno;
????}

????public void setSno(String sno) {
????????this.sno = sno;
????}

????@Override
????public String toString() {
????????return "Student{" +
????????????????"id=" + id +
????????????????", username='" + username + '\'' +
????????????????", sno='" + sno + '\'' +
????????????????'}';
????}
}

实验任务3:在com.hxci.dao中创建接口类

public interface StudentDao {
????
????public List<Student> query();
????
????public void add(Student student);
????
????public void update(Student student);
????
????public void delete(Integer id);
????
}

实验任务4:resources下的mapper中创建Mapper映射文件

<?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.StudentDao">
????<select id="query" resultType="com.hxci.pojo.Student" >
????????select * from student;
????</select>

????<insert id="add" parameterType="com.hxci.pojo.Student">
???????insert into student(username,sno) values(#{username},#{sno});
????</insert>

????<update id="update" parameterType="com.hxci.pojo.Student">
????????update student set username=#{username},sno=#{sno} where id=#{id};
????</update>

????<delete id="delete" parameterType="int">
????????delete from student where id=#{id};
????</delete>

????<select id="queryById" resultType="com.hxci.pojo.Student">
????????select * from student where id=#{id};
????</select>
</mapper>

实验任务5:创建spring-mybaits.xml文件spring整合Mybatis

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
???????xmlns:context="http://www.springframework.org/schema/context"
???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
???????xmlns:mvc="http://www.springframework.org/schema/mvc"
???????xmlns:tx="http://www.springframework.org/schema/tx"
???????xsi:schemaLocation="http://www.springframework.org/schema/beans
????????http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
????????http://www.springframework.org/schema/context
????????http://www.springframework.org/schema/context/spring-context-4.3.xsd
????????http://www.springframework.org/schema/mvc
????????http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
????????http://www.springframework.org/schema/tx
????????http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">


????<context:component-scan base-package="com.hxci.*"/>

????<context:property-placeholder location="classpath:database.properties"/>
????<bean id="dataSource" ?class="org.apache.commons.dbcp.BasicDataSource"
??????????destroy-method="close" scope="singleton">
????????<property name="driverClassName" value="${driver}" />
????????<property name="url" value="${url}" />
????????<property name="username" value="${user}" />
????????<property name="password" value="${password}" />
????????<property name="initialSize" value="${initialSize}"/>
????????<property name="maxActive" value="${maxActive}"/>
????????<property name="maxIdle" value="${maxIdle}"/>
????????<property name="minIdle" value="${minIdle}"/>
????????<property name="maxWait" value="${maxWait}"/>
????????<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
????????<property name="removeAbandoned" value="${removeAbandoned}"/>
????</bean>

????<!--配置sqlSessionFactory-->
????<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
????????<property name="dataSource" ref="dataSource"/>
????????<!--<property name="configLocation" value="classpath:mybatis-config.xml"/>-->
????????<property name="typeAliasesPackage" value="com.hxci.pojo" ></property>
????????<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
????</bean>
????<!--扫描映射文件(mapper动态代理)-->
????<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
????????<property name="basePackage" ?value="com.hxci.dao"/>
????</bean>
????<!-- 配置事务管理器 -->
????<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
????????<property name="dataSource" ref="dataSource"/>
????</bean>

????<!-- 开启注解 -->
????<!--<mvc:annotation-driven/>-->
????<!--transaction-manager="transactionManager"一定要加上,否则会报错,该配置是以事物的方式开启注解-->
????<!--启用他事务注解就可以运行了-->
????<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

实验任务6:在com.hxci.service中创建service接口

public interface StudentService {
????public List<Student> query();

????public void add(Student student);

????public void update(Student student);

????public void delete(Integer id);
}

实验任务7:在com.hxci.service.impl中创建service接口的实现类

@Service
public class StudentServiceImpl implements StudentService {
????
????@Autowired
????StudentDao dao;
????
????public List<Student> query() {
????????return dao.query();
????}

????public void add(Student student) {
????????dao.add(student);
????}

????public void update(Student student) {
????????dao.update(student);
????}

????public void delete(Integer id) {
????????dao.delete(id);
????}
}

实验任务8:在com.hxci.controller中创建StudentController

@Controller
public class StudentController {

????@Autowired
????StudentService service;

????public String query(){
????????List<Student> list= service.query();
????????System.out.println(list);
????????return null;
????}

????public String add(Student student){
????????service.add(student);
????????return null;
????}

????public String update(Student student){
????????service.update(student);
????????return null;
????}

????public String delete(Integer id){
????????service.delete(id);
????????return null;
????}

}

实验任务9:创建测试类

public class MyTest {

????@Test
????public void query(){
????????ApplicationContext context=new ClassPathXmlApplicationContext("spring-mybaits.xml");

????????StudentController controller=context.getBean("studentController",StudentController.class);

????????controller.query();
????}
}

测试后成功

总结:spring整合mybatis后将sqlSessionFactory在配置文件中赋值,舍去了要经常获取Sqlsession在清除的步骤,更加简化了开发。?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章           查看所有文章
加:2022-03-10 22:17:51  更:2022-03-10 22:22:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:13:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码