這是一個用 springboot 框架 + mybatis + sqlserver 的實戰教程,廢話很少說,開擼。html
這裏要說說 GroupId 和 Artifact 了,它是 Maven 管理項目的幾項元素java
GroupId :項目組,通常以公司名稱或者我的名稱來定義web
Artifact :項目名稱 或 者模塊名稱redis
像我如今定義的:com.ncat.webdemo spring
前面的 com 叫作域,除了com,咱們還會看到有的是 org 還有 cn開頭的sql
OK,咱們成功了一小步了,繼續加油!數據庫
這裏有一些小技巧,幫助咱們正確引入依賴瀏覽器
1. 當咱們把依賴的配置複製到該節點下時,IDEA 右下角會彈出框,問你是否導入引用,固然要導入了,能夠點擊後面的自動導入springboot
2. 咱們是否引入成功,能夠按住 ctrl 鍵 並將鼠標左鍵放在 groupId 節點上,會有模塊的引入信息,而且點擊後跳轉到該模塊,說明咱們引入成功了mybatis
<?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> <!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包--> <classPathEntry location="D:\Java\sqljdbc_6.0\enu\jre8\sqljdbc42.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="false"/> </commentGenerator> <!--數據庫連接URL,用戶名、密碼 --> <jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://IP:端口;DatabaseName=數據庫" userId="用戶名" password="密碼"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="main.java.com.ncat.webdemo.pojo" targetProject="src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="main.resources.mapper" targetProject="src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="main.java.com.ncat.webdemo.dao" targetProject="src"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名--> <table tableName="User" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
mybatis-generator:generate -e
代碼以下:
package com.ncat.webdemo.service; import com.ncat.webdemo.pojo.User; public interface UserService { User selectByPrimaryKey(Integer id); }
package com.ncat.webdemo.serviceImpl; import com.ncat.webdemo.dao.UserMapper; import com.ncat.webdemo.pojo.User; import com.ncat.webdemo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User selectByPrimaryKey(Integer id) { return userMapper.selectByPrimaryKey(id); } }
代碼以下:
package com.ncat.webdemo.controller; import com.ncat.webdemo.pojo.User; import com.ncat.webdemo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(value = {"user"}) public class UserController { @Autowired private UserService userService; @RequestMapping(value = {"test"}) public User Test(@RequestParam Integer id) { return userService.selectByPrimaryKey(id); } }
哎呀,報錯啦......
排查了半個小時,最後發現 是我表名的問題,個人表名是:User 與數據庫關鍵字衝突了,在 UserMapper.xml 文件中給表加中括號
OK,搞定。教訓:表名最好不要和數據庫關鍵字衝突了