plugins { id 'org.springframework.boot' version '2.1.6.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.wx.redis.wx' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProcessor } compile.exclude module: 'spring-boot-starter-logging'//排除對默認logging的依賴 } repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-data-redis') compile('org.springframework.boot:spring-boot-starter-web') compileOnly 'org.projectlombok:lombok' runtimeOnly 'mysql:mysql-connector-java' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' compile group: 'com.alibaba', name: 'druid', version: '1.1.12' compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0") compile("org.springframework.boot:spring-boot-starter-log4j:1.3.7.RELEASE") }
spring: redis: host: 192.168.47.128 port: 6379 database: 0 datasource: url: jdbc:mysql://127.0.0.1:3306/wx-redis?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource server: servlet: context-path: /wx-redis mybatis: mapperLocations: classpath:mapper/*.xml #mapper文件路徑 typeAliasesPackage: com.wx.user.domain #要配置別名的類包路徑
@SpringBootApplication //@MapperScan("com.wx.user.dao") 不在Application.java默認掃描路徑下的需使用該註解 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
@Data public class User { private String id; private String name; }
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public User getUserById(@PathVariable String id) { return userService.getUserById(id); } }
@Service public class UserService { @Resource// 使用Autowired會報警告,可是沒影響 private UserDao userDao; public User getUserById(String id) { return userDao.selectByPrimaryKey(id); } }
@Mapper public interface UserDao { User selectByPrimaryKey(String id); }
<?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.wx.user.dao.UserDao" > <resultMap id="BaseResultMap" type="User" > <id column="id" property="id" jdbcType="VARCHAR" /> <result column="name" property="name" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > id, name </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from user where id = #{id,jdbcType=VARCHAR} </select> </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> <settings> <!-- 使全局的映射器啓用或禁用緩存。 --> <setting name="cacheEnabled" value="true" /> <!-- 全局啓用或禁用延遲加載。當禁用時,全部關聯對象都會即時加載。 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 當啓用時,有延遲加載屬性的對象在被調用時將會徹底加載任意屬性。不然,每種屬性將會按須要加載。 --> <setting name="aggressiveLazyLoading" value="true"/> <!-- 是否容許單條sql 返回多個數據集 (取決於驅動的兼容性) default:true --> <setting name="multipleResultSetsEnabled" value="true" /> <!-- 是否能夠使用列的別名 (取決於驅動的兼容性) default:true --> <setting name="useColumnLabel" value="true" /> <!-- 容許JDBC 生成主鍵。須要驅動器支持。若是設爲了true,這個設置將強制使用被生成的主鍵,有一些驅動器不兼容不過仍然能夠執行。 default:false --> <setting name="useGeneratedKeys" value="false" /> <!-- 指定 MyBatis 如何自動映射 數據基表的列 NONE:不隱射 PARTIAL:部分 FULL:所有 --> <setting name="autoMappingBehavior" value="PARTIAL" /> <!-- 這是默認的執行類型 (SIMPLE: 簡單; REUSE: 執行器可能重複使用prepared statements語句;BATCH: 執行器能夠重複執行語句和批量更新) --> <setting name="defaultExecutorType" value="SIMPLE" /> <setting name="defaultStatementTimeout" value="25" /> <setting name="defaultFetchSize" value="100" /> <setting name="safeRowBoundsEnabled" value="false" /> <!-- 使用駝峯命名法轉換字段。 --> <setting name="mapUnderscoreToCamelCase" value="true" /> <!-- 設置本地緩存範圍 session:就會有數據的共享 statement:語句範圍 (這樣就不會有數據的共享 ) defalut:session --> <setting name="localCacheScope" value="SESSION" /> <!-- 默認爲OTHER,爲了解決oracle插入null報錯的問題要設置爲NULL --> <setting name="jdbcTypeForNull" value="NULL" /> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString" /> </settings> </configuration>
log4j.rootLogger=DEBUG,Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.org.apache=ERROR log4j.logger.org.mybatis=ERROR log4j.logger.org.springframework=ERROR #這個須要 log4j.logger.log4jdbc.debug=ERROR log4j.logger.com.gk.mapper=ERROR log4j.logger.jdbc.audit=ERROR log4j.logger.jdbc.resultset=ERROR #這個打印SQL語句很是重要 log4j.logger.jdbc.sqlonly=DEBUG log4j.logger.jdbc.sqltiming=ERROR log4j.logger.jdbc.connection=FATAL
12. 測試java