1.MySQL數(shù)據(jù)庫
1.1數(shù)據(jù)庫結(jié)構(gòu):
1.2user表結(jié)構(gòu):
1.3user表數(shù)據(jù):
1.4commodity表結(jié)構(gòu):
1.5commodity表數(shù)據(jù):
2.使用注解方式實現(xiàn)Mybatis
2.1引入依賴jar包
在build.gradle中添加Mysql驅(qū)動及Mybatis所需jar包如下
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
//使用 Controller 的時候需要引入 web 包
compile('org.springframework.boot:spring-boot-starter-web')
compile 'mysql:mysql-connector-java'
//配置mybatis 數(shù)據(jù)源
compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0")
testCompile('org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.0')
}
2.2配置數(shù)據(jù)庫連接
將src/main/resources中的application.properties重命名為application.yml,并打開編輯配置項目所需數(shù)據(jù)庫的地址、用戶名、密碼票唆,格式如下
spring:
datasource:
url: jdbc:mysql://localhost:3306/boot_db?characterEncoding=utf8
username: root
password: 123456
2.3創(chuàng)建web項目各層級包
在src/main/java中的創(chuàng)建entity希太、mapper侥祭、service平痰、web的package包如下
2.4編寫Mapper接口
在剛剛建的mapper包中新建interface接口UserMapper款违,并以注解方式添加一個查詢方法如下
import org.apache.ibatis.annotations.Select;
public interface UserMapper {
@Select("select name from user where id = #{id}")
String findUsername(Long id);
}
2.5編寫Service層
在service包中new一個interface接口UserService.java藕坯,包含一個查詢方法如下
public interface UserService {
String findUsername(Long id);
}
在service包中創(chuàng)建impl包团南,并創(chuàng)建接口實現(xiàn)類UserServiceImpl.java
UserService的實現(xiàn)類UserServiceImpl具體代碼如下
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public String findUsername(Long id) {
String name = userMapper.findUsername(id);
return name;
}
}
實現(xiàn)類需加@Service注解,并將UserMapper用@Autowired注入炼彪。
2.6編寫Controller層
在Web包中創(chuàng)建Controller類如下
@RestController
@RequestMapping(value = "user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/userName")
String findUserNameById(Long id) {
String name = userService.findUsername(id);
return name;
}
}
2.7運行測試
打開Application啟動類吐根,去掉之前步驟中測試使用的接口代碼,
并為該類添加Mapper掃描注解辐马,修改后代碼如下
@MapperScan("com.dmcq.mapper")
@SpringBootApplication
public class DmcqApplication {
public static void main(String[] args) {
SpringApplication.run(DmcqApplication.class, args);
}
}
運行該類main方法啟動服務拷橘,控制臺輸出信息如下,顯示出了服務啟動的端口(8080)喜爷,則服務啟動成功冗疮。
服務啟動成功后,瀏覽器get方式傳參請求Controller層web接口檩帐,測試請求根據(jù)id查詢數(shù)據(jù)庫中用戶姓名的功能:
瀏覽器測試訪問http://localhost:8080/user/userName?id=1結(jié)果如下
根據(jù)id查詢數(shù)據(jù)庫中用戶姓名功能完成术幔,測試成功。
3.使用XML方式實現(xiàn)Mybatis
在2的基礎(chǔ)上進行以下操作
3.1創(chuàng)建實體類
在entity包中創(chuàng)建實體類User如下
public class User {
private long id ; //id
private String name; // 姓名
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.2添加Mapper接口
打開2.4中創(chuàng)建的UserMapper接口類湃密,根據(jù)需求添加一個接口方法get()如下
public interface UserMapper {
@Select("select name from user where id = #{id}")
String findUsername(Long id);
User get(User user);
}
3.3創(chuàng)建XML文件
(1)創(chuàng)建mappers文件夾
在src/main/resources下創(chuàng)建mappers文件夾:
右擊resources→New→other
選擇Folder,點擊Next
將Folder name命名為mappers诅挑,點擊Finish完成創(chuàng)建文件夾。
(2)創(chuàng)建UserMapper.xml
在新建的mappers文件夾下創(chuàng)建UserMapper.xml文件泛源,如下
打開UserMapper.xml拔妥,編輯如下
<?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.dmcq.mapper.UserMapper">
<sql id="userColumns">
a.id AS "id",
a.name AS "name"
</sql>
<select id="get" resultType="User">
SELECT
<include refid="userColumns"/>
FROM user a
WHERE a.id = #{id}
</select>
</mapper>
<select>中的id值對應4.2.2中添加的get()方法。
3.4添加service層測試方法
打開UserService.java达箍,添加一個接口方法没龙,如下
public interface UserService {
String findUsername(Long id);
User getUser(User user);
}
打開UserServiceImpl.java,添加實現(xiàn)方法,如下
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public String findUsername(Long id) {
String name = userMapper.findUsername(id);
return name;
}
@Override
public User getUser(User user) {
user = userMapper.get(user);
return user;
}
}
3.5添加Controller層測試方法
打開UserController.java兜畸,添加一個方法
@RestController
@RequestMapping(value = "user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/userName")
String findUserNameById(Long id) {
String name = userService.findUsername(id);
return name;
}
@RequestMapping("/findUserNameByUser ")
String findUserNameByUser(User user) {
String name = userService.getUser(user).getPersonName();
return name;
}
}
3.6配置Mybatis
打開src/main/resources的下application.yml添加mybatis配置如下
spring:
datasource:
url: jdbc:mysql://localhost:3306/boot_db?characterEncoding=utf8
username: root
password: 1234
mybatis:
type-aliases-package: com.dmcq.entity
mapper-locations: classpath:mappers/**/*.xml
check-config-location: true
type-aliases-package配置別名為實體類所在包努释,若未配置則xml文件中<select>標簽的返回值類型resultType="User"必須寫成全類名形式resultType="com.dmcq.entity.User"碘梢,否則會因為找不到User的定義位置而報錯咬摇。
3.7運行測試
右鍵點擊Application.java啟動類
Run As/Debug As→Java Application,啟動web服務
瀏覽器訪問
http://localhost:8080/user/findUserNameByUser?id=2
結(jié)果如下
測試成功煞躬。