当前位置: 澳门新濠3559 > 编程 > 正文

就问老师哪里有这样的工具下载,而实体到数据

时间:2019-10-06 23:54来源:编程
import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.
import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;import java.sql.SQLException;@Configurationpublic class DruidConfig { private Logger logger = LoggerFactory.getLogger(DruidConfig.class); @Value("${spring.datasource.url}") private String dbUrl; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driver-class-name}") private String driverClassName; @Value("${spring.datasource.initialSize}") private int initialSize; @Value("${spring.datasource.minIdle}") private int minIdle; @Value("${spring.datasource.maxActive}") private int maxActive; @Value("${spring.datasource.maxWait}") private int maxWait; @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.minEvictableIdleTimeMillis}") private int minEvictableIdleTimeMillis; @Value("${spring.datasource.validationQuery}") private String validationQuery; @Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle; @Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow; @Value("${spring.datasource.testOnReturn}") private boolean testOnReturn; @Value("${spring.datasource.filters}") private String filters; @Value("${spring.datasource.logSlowSql}") private String logSlowSql; @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean reg = new ServletRegistrationBean(); reg.setServlet(new StatViewServlet; reg.addUrlMappings("/druid/*"); reg.addInitParameter("loginUsername", username); reg.addInitParameter("loginPassword", password); reg.addInitParameter("logSlowSql", logSlowSql); return reg; } @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new WebStatFilter; filterRegistrationBean.addUrlPatterns; filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); filterRegistrationBean.addInitParameter("profileEnable", "true"); return filterRegistrationBean; } @Bean public DataSource druidDataSource() { DruidDataSource datasource = new DruidDataSource(); datasource.setUrl; datasource.setUsername; datasource.setPassword; datasource.setDriverClassName(driverClassName); datasource.setInitialSize(initialSize); datasource.setMinIdle; datasource.setMaxActive(maxActive); datasource.setMaxWait; datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); try { datasource.setFilters; } catch (SQLException e) { logger.error("druid configuration initialization filter", e); } return datasource; }}

mybatis generator工具的使用

在前言中说到,mybatis也发现了我们需要重复的去创建pojo类、mapper文件以及dao类并且需要配置它们之间的依赖关系可能会很麻烦,所以mybtis提供了一个mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系,而我们只需要关系我们的业务逻辑直接使用就行了。
要使用mybatis generator工具需要在pom.xml文件中添加一个generator的maven工具:

 <build>      <plugins>           <plugin>               <groupId>org.mybatis.generator</groupId>               <artifactId>mybatis-generator-maven-plugin</artifactId>               <version>1.3.2</version>               <executions>                   <execution>                       <id>Generate MyBatis Artifacts</id>                       <goals>                           <goal>generate</goal>                       </goals>                   </execution>               </executions>               <configuration>                   <!-- generator 工具配置文件的位置 -->                   <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>                   <verbose>true</verbose>                   <overwrite>true</overwrite>               </configuration>               <dependencies>                    <dependency>                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>                        <version>5.1.34</version>                    </dependency>                    <dependency>                        <groupId>org.mybatis.generator</groupId>                        <artifactId>mybatis-generator-core</artifactId>                        <version>1.3.2</version>                    </dependency>               </dependencies>           </plugin>           <plugin>               <groupId>org.springframework.boot</groupId>               <artifactId>spring-boot-maven-plugin</artifactId>               <configuration>                   <classifier>exec</classifier>               </configuration>           </plugin>       </plugins>   </build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

上面指定了mybatis generator工具配置文件的位置,在这个位置创建一个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>    <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->    <!-- 引入配置文件 -->    <properties resource="mybatis-generator/mybatisGeneratorinit.properties"/>    <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->    <!--<classPathEntry location="D:generator_mybatismysql-connector-java-5.1.24-bin.jar" /> -->    <!-- 一个数据库一个context -->    <!--defaultModelType="flat" 大数据字段,不分表 -->    <context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat">        <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;        一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->        <property name="autoDelimitKeywords" value="true" />        <!-- 生成的Java文件的编码 -->        <property name="javaFileEncoding" value="utf-8" />        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->        <property name="beginningDelimiter" value="`" />        <property name="endingDelimiter" value="`" />        <!-- 格式化java代码 -->        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>        <!-- 格式化XML代码 -->        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />        <!-- 注释 -->        <commentGenerator >            <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->            <property name="suppressDate" 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.cuit.springboot.gentry" targetProject="${project}" >            <property name="enableSubPackages" value="false"/>            <property name="trimStrings" value="true"/>        </javaModelGenerator>        <!-- 生成mapxml文件 -->        <sqlMapGenerator targetPackage="mappers" targetProject="${resources}" >            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- 生成mapxml对应client,也就是接口dao -->        <javaClientGenerator targetPackage="com.cuit.springboot.gdao" targetProject="${project}" type="XMLMAPPER" >            <property name="enableSubPackages" value="false" />        </javaClientGenerator>        <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->        <table tableName="user" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">            <property name="useActualColumnNames" value="false" />            <!-- 数据库表主键 -->            <generatedKey column="id" sqlStatement="Mysql" identity="true" />        </table>    </context></generatorConfiguration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

在同目录下创建mybatisGeneratorinit.properties文件:

#Mybatis Generator configuration#dao类和实体类的位置project =src/main/java#mapper文件的位置resources=src/main/resources#根据数据库中的表生成对应的pojo类、dao、mapperjdbc_driver =com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/demojdbc_user=rootjdbc_password=123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

到此,整个配置就完成了,既然该工具的作用是将数据库中的表生成对应的实体、dao类和mapper文件,那么首先需要建立数据库表,当数据库表建立好后在pom.xml文件所在的目录执行如下命令:

mvn mybatis-generator:generate
  • 1

然后就可以看到在指定目录下已经生成了对应的文件,关于mybatis generator的更多详细的配置可以参考这篇文章:Mybatis Generator最完整配置详解

自动代码生成器根本原理就是根据实现写事先好的模板,再根据你提供的数据库结构,生成一系列的增删改查方法。的确是可以减少程序员的工作量,但是不能包含复杂或者特殊的业务逻辑1.不同的架构,需要不同的生成器2.生成器一般需要模板技术,如freeMarker、velocity等3.生成器也是Java项目,可以自己修改、设计、开发

springboot与mybatis集成

首先还是从 上初始化一个项目下来,然后在pom.xml文件中加入mybatis启动项(由于mybatis-spring-boot-starter依赖了spring-boot-starter,所以可以不用再添加spring-boot-starter了)以及mysql及web依赖

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>    </dependency>    <dependency>        <groupId>org.mybatis.spring.boot</groupId>        <artifactId>mybatis-spring-boot-starter</artifactId>        <version>1.3.1</version>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency></dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在application.properties中配置数据源及mybatis配置:

spring.application.name=spring-boot-configserver.port=8080server.context-path=/#mybatis.config-location=classpath:mybatis-config.xml#mybatis mapper文件的位置mybatis.mapper-locations=classpath*:mapper/**/*.xml#扫描pojo类的位置,在此处指明扫描实体类的包,在mapper中就可以不用写pojo类的全路径名了mybatis.type-aliases-package=com.cuitjdbc.type=mysqlspring.datasource.url=jdbc:mysql://localhost:3306/demospring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 就问老师哪里有这样的工具下载,而实体到数据库的映射需要自己编写sql语句实现。10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

可以通过mybatis.config-location属性来指定mybatis的配置文件的位置,简单起见这里使用默认配置就不用指定了,接下来分别在数据库中创建user表,并插入一些数据
澳门新濠3559 1
分别创建pojo类和dao接口对应mapper文件

public class User{    private String id;    private String name;    private String sex;    private int age;}@Mapper//加上该注解才能使用@MapperScan扫描到public interface UserDao {    User getUserById(@Param("id") int id);    int updateUser(@Param("user") User user);    int insertUser(@Param("user") User user);    int deleteUserById(@Param("id") int id);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

对应的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.cuit.springboot.dao.UserDao">    <select id="getUserById" resultType="User">        SELECT              ID as id,              NAME as name,              SEX as sex,              AGE as age        FROM user        WHERE ID = #{id}    </select>    <update id="updateUser">        UPDATE user        SET NAME = #{user.name},            SEX = #{user.sex},            AGE = #{user.age}        WHERE ID = #{user.id}    </update>    <insert id="insertUser">        INSERT INTO            user(id, name, sex, age)            VALUES (                #{user.id},                #{user.name},                #{user.sex},                #{user.age}            )    </insert>    <delete id="deleteUserById">        DELETE user WHERE ID = #{id}    </delete></mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

在启动类上加上@MapperScan注解,扫描指定包下的dao类:

@ComponentScan("com.cuit")@MapperScan("com.cuit")public class SpringBootApplicationStarter {    ...}
  • 1
  • 2
  • 3
  • 4
  • 5

最后写个Controller方法用于测试:

@RestControllerpublic class HelloController {    @Autowired    private UserDao userDao;    @RequestMapping("/hello")    public User hello(){        User user = userDao.getUserById(1);        System.out.println(user);        return user;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在浏览器中输入 可以看到已经查到数据了,sprigboot与mybatis简单集成就完成了。

step2application.yml配置

使用注解方式

当我们需要一个很简单的DML功能时,如果去创建mapper文件并编写一堆语句的时候也许会显得很麻烦,这个时候就可以通过注解的方式简化配置,新建一个UserAnnotationDao通过注解的方式来实现增删改查:

@Mapperpublic interface UserAnnotationDao {    @Select("SELECT * FROM user WHERE id = #{id}")    @Results({            @Result(property = "id", column = "id"),            @Result(property = "name", column = "name"),            @Result(property = "sex", column = "sex"),            @Result(property = "age", column = "age")    })    User getUserById(int id);    @Select("SELECT * FROM user")    @Results({            @Result(property = "id", column = "id"),            @Result(property = "name", column = "name"),            @Result(property = "sex", column = "sex"),            @Result(property = "age", column = "age")    })    List<User> queryAll();    @Update("UPDATE user SET NAME = #{user.name}, SEX = #{user.sex}, AGE = #{user.age} WHERE ID = #{user.id}")    int updateUser(User user);    @Insert("INSERT INTO user(id, name, sex, age) VALUES (#{user.id}, #{user.name}, #{user.sex}, #{user.age})")    int insertUser(User user);    @Delete("DELETE user WHERE ID = #{id}")    int deleteUserById(int id);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

使用注解自后就不需要mapper文件了,分别测试这几个方法均能正确执行,使用注解和使用xml的方式都差不多,通常情况下,如果没有复杂的连接查询,我们可以使用注解的方式,当设计到复杂的sql还是使用xml的方式更好掌控一些,所以通常情况下两种方式都会使用,根据sql的复杂程度选择不同的方式来提高开发效率。

如何使用

1.pom.xml引入相应的jar包。

<!-- 阿里巴巴druid数据库连接池 --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.3</version></dependency><!-- mysql驱动 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version></dependency><!-- mybatisplus与springboot整合 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatisplus-spring-boot-starter</artifactId> <version>1.0.5</version></dependency><!-- MP 核心库 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.1.8</version></dependency><!-- 模板引擎 --><dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version></dependency><!-- springboot整合mybatis --><!-- 注意顺序,这个一定要放在最下面 --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version></dependency>

2写自动生成代码的java类

public class CodeGeneration { /** * * @Title: main * @Description: 生成 * @param args */ public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("C://code"); gc.setFileOverride; gc.setActiveRecord;// 不需要ActiveRecord特性的请改为false gc.setEnableCache;// XML 二级缓存 gc.setBaseResultMap;// XML ResultMap gc.setBaseColumnList;// XML columList gc.setAuthor;// 作者 // 自定义文件命名,注意 %s 会自动填充表实体属性! gc.setControllerName("%sAction"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); mpg.setGlobalConfig; // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername; dsc.setPassword; dsc.setUrl("jdbc:mysql://127.0.0.1:3306/itcast"); mpg.setDataSource; // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setTablePrefix(new String[] { "itcast_" });// 此处可以修改为您的表前缀 strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 strategy.setInclude(new String[] { "itcast_user" }); // 需要生成的表 strategy.setSuperServiceClass; strategy.setSuperServiceImplClass; strategy.setSuperMapperClass; mpg.setStrategy; // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.zhm"); pc.setController; pc.setService("service"); pc.setServiceImpl("serviceImpl"); pc.setMapper; pc.setEntity; pc.setXml; mpg.setPackageInfo; // 执行生成 mpg.execute(); }}

其中重要的有outputDir(生成文件的输出目录)TablePrefixInclude(需要包含的表名,允许正则表达式(与exclude二选一配置))parent(父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名)更多配置参考:官方解析

3.执行main方法,就会生成好dao,entity,service ,serviceimpl和controller.

我得赶快让某个闲置起来智障队友用起来,大量的给我生成项目,明年看能不能找点外快*_*.

正文

项目组要搭建一个xxx的后台管理系统技术选型:项目:Spring Boot数据库连接池:Druid数据库:Oracle或者mysqlJS:VueJSHtml和CSS:Boostrap

springboot与mybatis集成

首先还是从 上初始化一个项目下来,然后在pom.xml文件中加入mybatis启动项(由于mybatis-spring-boot-starter依赖了spring-boot-starter,所以可以不用再添加spring-boot-starter了)以及mysql及web依赖

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>    </dependency>    <dependency>        <groupId>org.mybatis.spring.boot</groupId>        <artifactId>mybatis-spring-boot-starter</artifactId>        <version>1.3.1</version>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency></dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在application.properties中配置数据源及mybatis配置:

spring.application.name=spring-boot-configserver.port=8080server.context-path=/#mybatis.config-location=classpath:mybatis-config.xml#mybatis mapper文件的位置mybatis.mapper-locations=classpath*:mapper/**/*.xml#扫描pojo类的位置,在此处指明扫描实体类的包,在mapper中就可以不用写pojo类的全路径名了mybatis.type-aliases-package=com.cuitjdbc.type=mysqlspring.datasource.url=jdbc:mysql://localhost:3306/demospring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

可以通过mybatis.config-location属性来指定mybatis的配置文件的位置,简单起见这里使用默认配置就不用指定了,接下来分别在数据库中创建user表,并插入一些数据
澳门新濠3559 2
分别创建pojo类和dao接口对应mapper文件

public class User{    private String id;    private String name;    private String sex;    private int age;}@Mapper//加上该注解才能使用@MapperScan扫描到public interface UserDao {    User getUserById(@Param("id") int id);    int updateUser(@Param("user") User user);    int insertUser(@Param("user") User user);    int deleteUserById(@Param("id") int id);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

对应的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.cuit.springboot.dao.UserDao">    <select id="getUserById" resultType="User">        SELECT              ID as id,              NAME as name,              SEX as sex,              AGE as age        FROM user        WHERE ID = #{id}    </select>    <update id="updateUser">        UPDATE user        SET NAME = #{user.name},            SEX = #{user.sex},            AGE = #{user.age}        WHERE ID = #{user.id}    </update>    <insert id="insertUser">        INSERT INTO            user(id, name, sex, age)            VALUES (                #{user.id},                #{user.name},                #{user.sex},                #{user.age}            )    </insert>    <delete id="deleteUserById">        DELETE user WHERE ID = #{id}    </delete></mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

在启动类上加上@MapperScan注解,扫描指定包下的dao类:

@ComponentScan("com.cuit")@MapperScan("com.cuit")public class SpringBootApplicationStarter {    ...}
  • 1
  • 2
  • 3
  • 4
  • 5

最后写个Controller方法用于测试:

@RestControllerpublic class HelloController {    @Autowired    private UserDao userDao;    @RequestMapping("/hello")    public User hello(){        User user = userDao.getUserById(1);        System.out.println(user);        return user;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在浏览器中输入 可以看到已经查到数据了,sprigboot与mybatis简单集成就完成了。

老师也坦率,说他就有但是不给我们,等我们期末考试95分以上的可以找他要。当时还以为是什么高大上的神秘工具,还努力的学习,结果嘛,不提了。现在工作后,又想起这个东西,特意去百度了一下。

mybatis generator工具的使用

在前言中说到,mybatis也发现了我们需要重复的去创建pojo类、mapper文件以及dao类并且需要配置它们之间的依赖关系可能会很麻烦,所以mybtis提供了一个mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系,而我们只需要关系我们的业务逻辑直接使用就行了。
要使用mybatis generator工具需要在pom.xml文件中添加一个generator的maven工具:

 <build>      <plugins>           <plugin>               <groupId>org.mybatis.generator</groupId>               <artifactId>mybatis-generator-maven-plugin</artifactId>               <version>1.3.2</version>               <executions>                   <execution>                       <id>Generate MyBatis Artifacts</id>                       <goals>                           <goal>generate</goal>                       </goals>                   </execution>               </executions>               <configuration>                   <!-- generator 工具配置文件的位置 -->                   <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>                   <verbose>true</verbose>                   <overwrite>true</overwrite>               </configuration>               <dependencies>                    <dependency>                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>                        <version>5.1.34</version>                    </dependency>                    <dependency>                        <groupId>org.mybatis.generator</groupId>                        <artifactId>mybatis-generator-core</artifactId>                        <version>1.3.2</version>                    </dependency>               </dependencies>           </plugin>           <plugin>               <groupId>org.springframework.boot</groupId>               <artifactId>spring-boot-maven-plugin</artifactId>               <configuration>                   <classifier>exec</classifier>               </configuration>           </plugin>       </plugins>   </build>
  • 1
  • 2
  • 澳门新濠3559,3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

上面指定了mybatis generator工具配置文件的位置,在这个位置创建一个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>    <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->    <!-- 引入配置文件 -->    <properties resource="mybatis-generator/mybatisGeneratorinit.properties"/>    <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->    <!--<classPathEntry location="D:generator_mybatismysql-connector-java-5.1.24-bin.jar" /> -->    <!-- 一个数据库一个context -->    <!--defaultModelType="flat" 大数据字段,不分表 -->    <context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat">        <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;        一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->        <property name="autoDelimitKeywords" value="true" />        <!-- 生成的Java文件的编码 -->        <property name="javaFileEncoding" value="utf-8" />        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->        <property name="beginningDelimiter" value="`" />        <property name="endingDelimiter" value="`" />        <!-- 格式化java代码 -->        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>        <!-- 格式化XML代码 -->        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />        <!-- 注释 -->        <commentGenerator >            <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->            <property name="suppressDate" 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.cuit.springboot.gentry" targetProject="${project}" >            <property name="enableSubPackages" value="false"/>            <property name="trimStrings" value="true"/>        </javaModelGenerator>        <!-- 生成mapxml文件 -->        <sqlMapGenerator targetPackage="mappers" targetProject="${resources}" >            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- 生成mapxml对应client,也就是接口dao -->        <javaClientGenerator targetPackage="com.cuit.springboot.gdao" targetProject="${project}" type="XMLMAPPER" >            <property name="enableSubPackages" value="false" />        </javaClientGenerator>        <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->        <table tableName="user" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">            <property name="useActualColumnNames" value="false" />            <!-- 数据库表主键 -->            <generatedKey column="id" sqlStatement="Mysql" identity="true" />        </table>    </context></generatorConfiguration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

在同目录下创建mybatisGeneratorinit.properties文件:

#Mybatis Generator configuration#dao类和实体类的位置project =src/main/java#mapper文件的位置resources=src/main/resources#根据数据库中的表生成对应的pojo类、dao、mapperjdbc_driver =com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/demojdbc_user=rootjdbc_password=123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

到此,整个配置就完成了,既然该工具的作用是将数据库中的表生成对应的实体、dao类和mapper文件,那么首先需要建立数据库表,当数据库表建立好后在pom.xml文件所在的目录执行如下命令:

mvn mybatis-generator:generate
  • 1

然后就可以看到在指定目录下已经生成了对应的文件,关于mybatis generator的更多详细的配置可以参考这篇文章:Mybatis Generator最完整配置详解

 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!--下面是oracle的连接器--> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>12.1.0.1-atlassian-hosted</version> <exclusions> <exclusion> <groupId>cglib</groupId> <artifactId>cglib</artifactId> </exclusion> </exclusions> </dependency> <!--下面是mysql的连接器--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>

前言

mybatis是一个半自动化的orm框架,所谓半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis,mybatis非常灵活,可以随心所欲的编写自己的sql语句来实现复杂的数据库操作,还会有一种畅酣淋漓的编写sql语句的潇洒感,但是以前的mybaits需要一大堆的配置文件,以及各种mapper和dao和实体的关联,导致使用mybatis还是不够简洁,后来mybatis也发现了这个弊端,开发了mybatis generator工具来自动化生成实体类、mapper配置文件、dao层代码来减轻开发工作量,在后期也是实现了抛弃mapper配置文件基于注解的开发模式,直到现在,mybatis看spring boot这么火热,也开发了一套基于spring boot的模式:mybatis-spring-boot-starter。
spring boot简约轻巧的风格正在逐渐被越来越多的厂商及开发者所认可,包括阿里的开源RPC框架dubbo也准备开发一套对spring boot应用的支持(dubbo-spring-boot-starter启动配置模块)

“代码自动生成”,第一次知道这个词语是从大学的Java web课上,一位外聘老师口中得知。

前言

mybatis是一个半自动化的orm框架,所谓半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis,mybatis非常灵活,可以随心所欲的编写自己的sql语句来实现复杂的数据库操作,还会有一种畅酣淋漓的编写sql语句的潇洒感,但是以前的mybaits需要一大堆的配置文件,以及各种mapper和dao和实体的关联,导致使用mybatis还是不够简洁,后来mybatis也发现了这个弊端,开发了mybatis generator工具来自动化生成实体类、mapper配置文件、dao层代码来减轻开发工作量,在后期也是实现了抛弃mapper配置文件基于注解的开发模式,直到现在,mybatis看spring boot这么火热,也开发了一套基于spring boot的模式:mybatis-spring-boot-starter。
spring boot简约轻巧的风格正在逐渐被越来越多的厂商及开发者所认可,包括阿里的开源RPC框架dubbo也准备开发一套对spring boot应用的支持(dubbo-spring-boot-starter启动配置模块)

@MapperScan("com.netease.paygateway.dao")@SpringBootApplicationpublic class PaygatewayApplication { public static void main(String[] args) { SpringApplication.run(PaygatewayApplication.class, args); }}

正文

mybaits需要一大堆的配置文件,以及各种mapper和dao和实体的关联,导致使用mybatis还是不够简洁,后来mybatis也发现了这个弊端,开发了mybatis generator工具来自动化生成实体类、mapper配置文件、dao层代码来减轻开发工作量,在后期也是实现了抛弃mapper配置文件基于注解的开发模式.mybtis提供了一个mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系,而我们只需要关系我们的业务逻辑直接使用就行了。

使用注解方式

当我们需要一个很简单的DML功能时,如果去创建mapper文件并编写一堆语句的时候也许会显得很麻烦,这个时候就可以通过注解的方式简化配置,新建一个UserAnnotationDao通过注解的方式来实现增删改查:

@Mapperpublic interface UserAnnotationDao {    @Select("SELECT * FROM user WHERE id = #{id}")    @Results({            @Result(property = "id", column = "id"),            @Result(property = "name", column = "name"),            @Result(property = "sex", column = "sex"),            @Result(property = "age", column = "age")    })    User getUserById(int id);    @Select("SELECT * FROM user")    @Results({            @Result(property = "id", column = "id"),            @Result(property = "name", column = "name"),            @Result(property = "sex", column = "sex"),            @Result(property = "age", column = "age")    })    List<User> queryAll();    @Update("UPDATE user SET NAME = #{user.name}, SEX = #{user.sex}, AGE = #{user.age} WHERE ID = #{user.id}")    int updateUser(User user);    @Insert("INSERT INTO user(id, name, sex, age) VALUES (#{user.id}, #{user.name}, #{user.sex}, #{user.age})")    int insertUser(User user);    @Delete("DELETE user WHERE ID = #{id}")    int deleteUserById(int id);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

使用注解自后就不需要mapper文件了,分别测试这几个方法均能正确执行,使用注解和使用xml的方式都差不多,通常情况下,如果没有复杂的连接查询,我们可以使用注解的方式,当设计到复杂的sql还是使用xml的方式更好掌控一些,所以通常情况下两种方式都会使用,根据sql的复杂程度选择不同的方式来提高开发效率。

step3访问:

从他的闲聊中了解到,许多企业公司都会有这么一个自动生成代码的东西,做Java项目的时候会直接生成代码甚至是一个项目,只需要人工改改细节就OK了。当时就比较感兴趣,就问老师哪里有这样的工具下载。

step1添加依赖 Druid各版本Starter

在spring boot mybatis中如何使用

1.在pom.xml文件中添加一个generator的maven工具

<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>deploy</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!-- generator 工具配置文件的位置 --> <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>

2.上面指定了mybatis generator工具配置文件的位置,在这个位置创建一个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> <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e --> <!-- 引入配置文件 --> <properties resource="mybatis-generator/mybatisGeneratorinit.properties"/> <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 --> <!--<classPathEntry location="D:generator_mybatismysql-connector-java-5.1.24-bin.jar" /> --> <!-- 一个数据库一个context --> <!--defaultModelType="flat" 大数据字段,不分表 --> <context targetRuntime="MyBatis3Simple" defaultModelType="flat"> <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留默认值,遇到数据库关键字,使用columnOverride覆盖 --> <property name="autoDelimitKeywords" value="true" /> <!-- 生成的Java文件的编码 --> <property name="javaFileEncoding" value="utf-8" /> <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; --> <property name="beginningDelimiter" value="`" /> <property name="endingDelimiter" value="`" /> <!-- 格式化java代码 --> <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/> <!-- 格式化XML代码 --> <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <!-- 注释 --> <commentGenerator > <property name="suppressAllComments" value="false"/> <!-- 是否取消注释 --> <property name="suppressDate" 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.cuit.springboot.gentry" targetProject="${project}" > <property name="enableSubPackages" value="false"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="mappers" targetProject="${resources}" > <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapxml对应client,也就是接口dao --> <javaClientGenerator targetPackage="com.cuit.springboot.gdao" targetProject="${project}" type="XMLMAPPER" > <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 --> <table tableName="user" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <property name="useActualColumnNames" value="false" /> <!-- 数据库表主键 --> <generatedKey column="id" sqlStatement="Mysql" identity="true" /> </table> </context> </generatorConfiguration>

在MBG中,最主要也最重要的就是XML配置文件,配置详解

3.在同目录下创建mybatisGeneratorinit.properties文件:

//Mybatis Generator configuration//dao类和实体类的位置 project =src/main/java #mapper文件的位置 resources=src/main/resources//根据数据库中的表生成对应的pojo类、dao、mapperjdbc_driver =com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/demojdbc_user=rootjdbc_password=root

4.建立数据库表,当数据库表建立好后在pom.xml文件所在的目录执行如下命令:

mvn mybatis-generator:generate

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version></dependency>

因为最近在学习SSM,然后了解到MyBatis GeneratorMyBatis-Plus

server.port=8080spring.application.name=testspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/databaseName?useSSL=false&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=rootspring.datasource.druid.initial-size=5spring.datasource.druid.min-idle=5spring.datasource.druid.maxActive=20spring.datasource.druid.maxWait=60000spring.datasource.druid.timeBetweenEvictionRunsMillis=60000spring.datasource.druid.minEvictableIdleTimeMillis=300000spring.datasource.druid.validationQuery=SELECT 1 FROM DUALspring.datasource.druid.testWhileIdle=truespring.datasource.druid.testOnBorrow=falsespring.datasource.druid.testOnReturn=falsespring.datasource.druid.poolPreparedStatements=truespring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20spring.datasource.druid.filters=stat,wall,log4jspring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000spring.datasource.druid.web-stat-filter.enabled=truespring.datasource.druid.web-stat-filter.url-pattern=/*spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.163.1spring.datasource.druid.stat-view-servlet.deny=192.168.1.73spring.datasource.druid.stat-view-servlet.reset-enable=falsespring.datasource.druid.stat-view-servlet.login-username=adminspring.datasource.druid.stat-view-servlet.login-password=123456

properties版本

光有上面的配置还不行,还需要一个configuration配置,configuration相当于xml文件里面的bean配置,创建的时候直接复制粘贴就行了

不出意外你上面的configuration应该会飘红,因为你没有配置pom文件的依赖。把下面的依赖引入进去,如果你使用的是mysql的connector,就引入mysql的依赖

澳门新濠3559 3startstep2如果你使用idea或者eclipse(需要安装spring boot插件)也可以快速生成一个项目,idea如下图澳门新濠3559 4startstep3由于项目比较简单,并发量不大,直接使用界面的mybatis generator 去 clone下来,maven编译后启动,连接你的数据库就可以使用它来快速生成dao层和mapper文件及model了。澳门新濠3559 5generatorstep4数据库dao层,model,mappers文件都已经生成完了,我们应该连接一下数据库试试了,Druid数据库配置如下:

@RunWith(SpringRunner.class)@SpringBootTest(classes = PaygatewayApplication.class)public class ChargeServiceTest { @Autowired ChargeDAO chargeDAO; @Test public void getChargeVOList() { ChargeVOExample example = new ChargeVOExample(); example.createCriteria().andChargeIdEqualTo("2018052415GCR30503164"); List<ChargeVO> result = chargeDAO.selectByExample; System.out.println; }}

step4写一个Junit测试类测一测,在main目录的兄弟目录test下创建一个测试类,也可以在某个dao类直接使用ctrl shift T,在类上右键新建junit。注意添加两个注解,@SpringBootTest里面的注解就是你的主类Application。

以为上面配置结束就可以开心的马骝了?NONONO!还有个坑呢,主文件里需要添加@MapperScan,参数为你dao接口的路径,否则就会报bean的相关异常哦!

# 数据库访问配置spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriverspring.datasource.url=jdbc:oracle:thin:@ip:port:oratestspring.datasource.username=xxxspring.datasource.password=xxx# 下面为连接池的补充设置,应用到上面所有数据源中spring.datasource.initialSize=5spring.datasource.minIdle=5spring.datasource.maxActive=20# 配置获取连接等待超时的时间spring.datasource.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=SELECT 1 FROM DUALspring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙spring.datasource.filters=stat,wall,log4jspring.datasource.logSlowSql=true#这里注意增加一个mappers文件的位置,不然会报错mybatis.mapperLocations=classpath*:mappers/*.xml 

step1 进入此URL,在左边两栏配置自己的GroupID和ArtifactID,在右边栏配置自己需要的一些maven依赖,如web,mysql connector等。点击Generate Project下载配置好的项目zip包。

spring: application: name: springboot-test-exam1 datasource: # 使用阿里的Druid连接池 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver # 配置jdbc url: jdbc:mysql://localhost:3306/dbname?useSSL=false&characterEncoding=utf8 username: root password: root # 配置连接池 druid: # 初始化大小,最小,最大 initial-size: 5 min-idle: 5 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false # 打开PSCache,并且指定每个连接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,log4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 配置DruidStatFilter web-stat-filter: enabled: true url-pattern: "/*" exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*" # 配置DruidStatViewServlet stat-view-servlet: url-pattern: "/druid/*" # IP白名单(没有配置或者为空,则允许所有访问) allow: 127.0.0.1,192.168.163.1 # IP黑名单 (存在共同时,deny优先于allow) deny: 192.168.1.73 # 禁用HTML页面上的“Reset All”功能 reset-enable: false # 登录名 login-username: admin # 登录密码 login-password: 123456

编辑:编程 本文来源:就问老师哪里有这样的工具下载,而实体到数据

关键词: 澳门新濠3559