springboot-mybatis
来源:互联网 发布:admaster数据分析师 编辑:程序博客网 时间:2024/06/05 15:16
上次说道springboot框架的快速搭建,本次记录下springboot和mybatis的整合过程
mybatis简介
MyBatis 来源于apache的一个开源项目iBatis,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
整合过程
- 按照上次步骤进行springboot框架的搭建
- 打开pom.xml文件进行依赖添加:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>springboot-mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springboot-mybatis</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </plugin> </plugins> </build></project>
3.自动生成实体,mapper等文件,这是其方便之处
在resources文件目录下新建generatorConfig.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" ><generatorConfiguration> <!-- 引入配置文件 --> <properties resource="init.properties" /> <!-- 指定数据连接驱动jar地址 --> <classPathEntry location="${classPath}" /> <!-- 一个数据库一个context --> <context id="infoGuardian"> <!-- 注释 --> <commentGenerator> <property name="suppressAllComments" value="true" /><!-- 是否取消注释 --> </commentGenerator> <!-- jdbc连接 --> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" /> <!-- 类型转换 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成实体类地址 --> <javaModelGenerator targetPackage="com.demo.entity" targetProject="${project}"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="false" /> <!-- 是否针对string类型的字段在set的时候进行trim调用 --> <property name="trimStrings" value="false" /> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="com.demo.mapper" targetProject="${project}"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapxml对应client,也就是接口dao --> <javaClientGenerator targetPackage="com.demo.dao" targetProject="${project}" type="XMLMAPPER"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="user" domainObjectName="User" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false"></table> </context></generatorConfiguration>
再新建一个init.properties的配置文件
project = E:\\demoWorkspace\\springboot-mybatisclassPath=C:\\Users\\Administrator\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.43\\mysql-connector-java-5.1.43.jar#classPath=E:\\mavenReposeitory\\com\\oracle\\ojdbc6\\11.2.0.3\\ojdbc6-11.2.0.3.jarjdbc_driver=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/springbootdbjdbc_user=rootjdbc_password=root
然后对项目进行maven的命令运行:mybatis-generator:generate就会在对应目录生成对应的文件,节省大量时间(如果项目地址配置有误生成的文件需要自己拷贝至项目中)
4.配置数据源
新建数据源实体:
@Configuration@ConfigurationProperties(prefix = "mybatis.datasource")@MapperScan(basePackages = { DataSourceConstants.MAPPER_PACKAGE }, sqlSessionFactoryRef = "mybatisSqlSessionFactory")public class DataSourceConfig { private String url; private String username; private String password; @Bean(name = "mybatisDataSource") public DataSource mybatisDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } @Bean(name = "mybatisTransactionManager") public DataSourceTransactionManager mybatisTransactionManager() { return new DataSourceTransactionManager(mybatisDataSource()); } @Bean(name = "mybatisSqlSessionFactory") public SqlSessionFactory mybatisSqlSessionFactory(@Qualifier("mybatisDataSource") DataSource mybatisDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(mybatisDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(DataSourceConstants.MAPPER_LOCATION)); return sessionFactory.getObject(); } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } 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; }}public abstract class DataSourceConstants { public static final String MAPPER_PACKAGE = "com.demo.mapper"; public static final String MAPPER_LOCATION = "classpath:mapper/*Mapper*.xml";}
配置application.properties:
spring.application.name=springboot-mybatis
mybatis.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
mybatis.datasource.username=root
mybatis.datasource.password=root
5.新建services进行测试
public interface UserService { public User getById(Integer id);}@Servicepublic class UserServiceImpl implements UserService{ @Autowired private UserMapper mapper; /** * * <p>Title: ...</p> * <p>Description: </p> * @return * @see com.demo.service.UserService#getById() */ public User getById(Integer id) { return mapper.selectByPrimaryKey(id); }}
创建一个controller:
*/@RestControllerpublic class UserController { @Resource UserService userService; @RequestMapping(value="/{id}",method=RequestMethod.GET) public String index(@PathVariable Integer id) { User user = userService.getById(id); return "姓名:"+user.getUserName()+" 密码:"+user.getPassWord(); }}
对启动类添加mapper注解扫描:
@SpringBootApplication@MapperScan(basePackages="com.demo.mapper")public class Application { public static void main( String[] args ) { SpringApplication.run(Application.class, args); }}
项目目录:
6.测试启动项目,打开游览器访问http://localhost:8080/1
代码及sql脚本:
https://gitee.com/chenghao842822530/springbootdemo
上一篇springboot入门:http://blog.csdn.net/helloword_monkey/article/details/78801448
下一篇springboot+jpa+Thymeleaf:http://blog.csdn.net/helloword_monkey/article/details/78805381
- springBoot--mybatis
- springboot + mybatis
- mybatis+springboot
- springboot + mybatis
- springboot mybatis
- springboot+mybatis
- Springboot+Mybatis
- springboot-mybatis
- SpringBoot学习:SpringBoot整合mybatis
- springboot(四、springboot+mybatis)
- SpringBoot和Mybatis整合
- springboot 整合mybatis
- springBoot集成mybatis
- springboot+mybatis 事务管理
- springboot+mybatis+dubbo整合
- SpringBoot集成mybatis
- springboot+mybatis实现security
- springboot集成mybatis
- Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks原文
- c# webservice异步调用wcf 异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值
- Java基础_try-catch-finally
- 【工业机器人】清华大学教授讲工业机器人技术,学工业机器人的好素材!
- 2017年12月14日 第三十六天次总结
- springboot-mybatis
- CSDN新版博客排名规则公示
- 文档类型
- 快速排序算法详细讲解c++版
- java-java类的生命周期
- java事件
- 微信token验证失败
- RGB "Bayer" Color and MicroLenses, convertion between RGB and YUV
- 基于maven使用IDEA创建多模块项目-很详细