Привет всем, в этой главе мы создадим базовую структуру проекта и интегрируем mybatis; среда, необходимая для проекта: jdk1.8, maven, база данных mysql; инструмент разработки IDEA. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь со мной по адресу mr_beany@163.com. Также попросите руководства великих богов, спасибо
Первый: создайте базовую структуру с помощью инструмента для создания идей.
1. Откройте идею, перейдите в «Файл» → «Создать» → «Проект» в верхнем левом углу и посмотрите на страницу, как показано ниже.3. Нажмите Далее, конфигурация показана ниже, здесь мы выбираем базу данныхMySQLи структура уровня сохраняемостиMyBatis
4. Нажмите «Далее», выберите рабочий каталог, нажмите «Готово», чтобы начать сборку.
DemoApplication.java — это класс запуска проекта.
application.properties — это файл конфигурации проекта.
pom.xml в основном описывает maven-координаты проекта, зависимости, правила, которым должны следовать разработчики, систему управления дефектами, организацию и лицензии и все другие факторы, связанные с проектом (требуется управление пакетами jar)
Два: настроить информацию базы данных
Добавьте следующую конфигурацию базы данных в файл application.properties.
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&failOverReadOnly=false
spring.datasource.username=数据库用户名
spring.datasource.password=数据库密码
spring.datasource.driverClassName=com.mysql.jdbc.Driver
Три: Создайте таблицу UserInfo базы данных
CREATE TABLE `user_info` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
Четвертое: создайте базовую структуру каталогов проекта.
Model
package com.example.demo.model;
import javax.persistence.Column;
import javax.persistence.Id;
/**
* @author 张瑶
* @Description:
* @time 2018/4/18 11:55
*/
public class UserInfo {
/**
* 主键
*/
private String id;
/**
* 用户名
*/
private String userName;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
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.example.demo.dao.UserInfoMapper">
<resultMap id="BaseResultMap" type="com.example.demo.model.UserInfo">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="user_name" jdbcType="VARCHAR" property="userName"/>
</resultMap>
<sql id="Base_Column_List">
id,user_name
</sql>
<select id="selectById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from user_info
where id = #{id,jdbcType=VARCHAR}
</select>
</mapper>
Dao
package com.example.demo.dao;
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Param;
/**
* @author 张瑶
* @Description:
* @time 2018/4/18 11:54
*/
public interface UserInfoMapper {
UserInfo selectById(@Param("id") Integer id);
}
Service
package com.example.demo.service;
import com.example.demo.model.UserInfo;
/**
* @author 张瑶
* @Description:
* @time 2018/4/18 11:56
*/
public interface UserInfoService {
UserInfo selectById(Integer id);
}
ServiceImpl
package com.example.demo.service.impl;
import com.example.demo.dao.UserInfoMapper;
import com.example.demo.model.UserInfo;
import com.example.demo.service.UserInfoService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author 张瑶
* @Description:
* @time 2018/4/18 11:56
*/
@Service
public class UserInfoServiceImpl implements UserInfoService{
@Resource
private UserInfoMapper userInfoMapper;
public UserInfo selectById(Integer id){
return userInfoMapper.selectById(id);
}
}
Controller
package com.example.demo.controller;
import com.example.demo.model.UserInfo;
import com.example.demo.service.UserInfoService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author 张瑶
* @Description:
* @time 2018/4/18 11:39
*/
@RestController
@RequestMapping("userInfo")
public class UserInfoController {
@Resource
private UserInfoService userInfoService;
@PostMapping("/hello")
public String hello(){
return "hello SpringBoot";
}
@PostMapping("/selectById")
public UserInfo selectById(Integer id){
return userInfoService.selectById(id);
}
}
Контроллер@RestControllerРоль аннотаций:
@RestController состоит из @Controller и @ResponseBody, что указывает на то, что класс является контроллером, а возвращаемый результат — это данные JSON, а не путь к странице.
Ориентируйтесь на конфигурацию вMyBatisConfigurer.java
package com.example.demo.core.configurer;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import javax.sql.DataSource;
/**
* @ClassName: MybatisConfigurer
* @Description: Mybatis配置
* @author 张瑶
* @date 2018年1月20日 下午4:03:46
*
*/
@Configuration
public class MybatisConfigurer {
@Bean
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
factory.setTypeAliasesPackage("com.example.demo.model");
// 添加XML目录
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
factory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
return factory.getObject();
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
mapperScannerConfigurer.setBasePackage("com.example.demo.dao");
return mapperScannerConfigurer;
}
}
@Configuration указывает, что файл является файлом конфигурации
@Bean указывает, что метод
вfactory.setTypeAliasesPackage("com.example.demo.model")Указывает путь хранения модели в проекте;
factory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));Указывает путь к хранилищу mapper.xml;
mapperScannerConfigurer.setBasePackage("com.example.demo.dao");Указывает путь хранения слоя dao
Пятое: запустить проект
Найдите DemoApplication, щелкните правой кнопкой мыши и выберите «Запустить DemoApplication».
Консоль выводит следующую информацию, что означает, что запуск прошел успешно
Шесть: тестовый интерфейс
Откройте почтальон (плагин для браузера Google, вы можете перейти в магазин приложений, чтобы загрузить), введите
Обратите внимание на изменение вашего ip, появляются следующие данные структуры, доступ успешен
{
"id": 1,
"userName": "1"
}
адрес проекта
Адрес облака кода:git ee.com/bean также/no SPR…
Адрес гитхаба:GitHub.com/my bean also/no s…
Писать статьи непросто, если это вам поможет, нажмите звездочку
конец
Построение фреймворка и интеграция mybatis завершены, а последующие функции будут обновляться один за другим.Если у вас есть какие-либо вопросы, свяжитесь со мной по адресу mr_beany@163.com. Также попросите руководства у всех великих богов, спасибо всем.