实战 Java 第2章:连接数据库
java 2021-06-17 20:11:34

一、添加数据库相关依赖

在 pom.xml 中添加数据库相关依赖,在此使用 mybatis。

Java Code复制内容到剪贴板
  1. <dependency>  
  2.            <groupId>mysql</groupId>  
  3.            <artifactId>mysql-connector-java</artifactId>  
  4.            <version>5.1.47</version>  
  5.        </dependency>  
  6.        <dependency>  
  7.            <groupId>tk.mybatis</groupId>  
  8.            <artifactId>mapper</artifactId>  
  9.            <version>3.4.0</version>  
  10.        </dependency>  
  11.        <dependency>  
  12.            <groupId>org.mybatis.spring.boot</groupId>  
  13.            <artifactId>mybatis-spring-boot-starter</artifactId>  
  14.            <version>1.3.0</version>  
  15.        </dependency>  

 

第一个依赖是 mysql 数据库,不用多说。

第二个依赖是 tk.mybatis,mybatis 包。

第三个依赖是 org.mybatis.spring.boot,主要用来集成 mybatis 和 spring 框架。

注意:mysql 数据库版本需要指定一下,最好是一个中间版本,不要太新,也不要太老。如果没有指定,会按照最新的版本下载,最新的版本可能会导致老的配置失效,产生bug。

当添加了配置文件之后,IDEA 编辑器有时候会自动弹出以下框,选择 Import Changes 即可下载依赖。

如果没有弹出此框,也可以对着 pom.xml 文件右键按下图所示依次选择。

1-11.png

 

二、配置数据库相关参数

在 application.properties 文件中添加以下配置

Java Code复制内容到剪贴板
  1. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tool?useUnicode=true&characterEncoding=utf8&useSSL=false  
  2. spring.datasource.username=root  
  3. spring.datasource.password=m@!347dhijdfiUEU,  
  4. spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
  5. mybatis.mapper-locations=classpath:mapper/*Mapper.xml  
  6. mybatis.type-aliases-package=com.yoyo.tool.entity  

 

spring.datasource.url:数据库服务器地址。

useUnicode:使用的编码格式。

spring.datasource.username:数据库登陆用户名。

spring.datasource.password:数据库登陆密码。

spring.datasource.driver-class-name:数据库连接驱动类。

mybatis.mapper-locations:mybatis 映射扫描路径。

mybatis.type-aliases-package:实体扫描路径。
 

使用 Navicat 连接本地数据库,库名为 exchange,新建表 user,属性为用户名 username ,类型为 varchar;密码 password,类型为 int。

 

这里有一个地方要注意一下,SSL默认是false,如果没有配置,run的时候会出现错误:

Establishing SSL connection without server‘s identity verification is not recommende

 

 

三、编写新增用户接口

第一步:创建 entity 实体类。

根据业务逻辑创建所需要的对象和属性。

新建 entity 文件包

在此文件包下面新建 User 类,来用抽象用户信息,内容如下:

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.entity;  
  2.   
  3. public class User {  
  4.     int password;  
  5.     String username;  
  6.     public String getUsername(){  
  7.         return username;  
  8.     }  
  9.     public void setUserName(String name){  
  10.         this.username = name;  
  11.     }  
  12.     public int getPassword(){  
  13.         return password;  
  14.     }  
  15.     public void setPassword(Integer id){  
  16.         this.password = id;  
  17.     }  
  18.   
  19.     @Override  
  20.     public String toString(){  
  21.         return "user{name='"+username+"\',"+"password="+password+"}";  
  22.     }  
  23. }  

 

在此文件包下面新建 Response 类,用来返回接口调用信息描述。内容如下: 

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.entity;  
  2.   
  3. public class Response {  
  4.     String message;  
  5.     int code;  
  6.   
  7.     public String getMessage() {  
  8.         return message;  
  9.     }  
  10.   
  11.     public void setMsg(String msg) {  
  12.         this.message = msg;  
  13.     }  
  14.   
  15.     public int getCode() {  
  16.         return code;  
  17.     }  
  18.   
  19.     public void setCode(int code) {  
  20.         this.code = code;  
  21.     }  
  22. }  

 

 所以 entity 下面目前有两个实体类,User 类和 Response 类。 

 

根据user类,来创建对应的mapper和service

 

创建 mapper 包。

新建 mapper 文件包,在此文件包下新建 UserMapper 类,内容如下【注意要加上注解Mapper】:

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.mapper;  
  2.   
  3. import com.yoyo.tool.entity.User;  
  4. import org.apache.ibatis.annotations.Mapper;  
  5.   
  6. @Mapper  
  7. public interface UserMapper {  
  8.     int addUserInfo(User user);  
  9. }  

 

在学习的时候发现,addUserInfo函数被高亮了,表示这个函数被其他地方用到了,所以它会高亮

 

创建 service 包。

根据业务关系,编写相关业务逻辑。

新建 service 文件包,在此文件包下新建 UserService 类编写接口【这里注意,不是class是interface】,内容如下:

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.service;  
  2.   
  3. public interface UserService {  
  4.     void addUserInfo();  
  5. }  

 

在 service 文件包下面新建 impl 文件包,在 impl 文件包下新建 UserServiceImpl 类来实现 UserService 接口【这里注意注解加@Service和@Resource】

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.service.impl;  
  2.   
  3. import com.yoyo.tool.entity.User;  
  4. import com.yoyo.tool.mapper.UserMapper;  
  5. import com.yoyo.tool.service.UserService;  
  6. import org.springframework.stereotype.Service;  
  7. import javax.annotation.Resource;  
  8.   
  9. @Service  
  10. public class UserServiceImpl implements UserService {  
  11.   
  12.     @Resource  
  13.     UserMapper userMapper;  
  14.     public void addUserInfo(){  
  15.         String username = "jack";  
  16.         int password = 123;  
  17.         User user = new User();  
  18.         user.setUserName(username);  
  19.         user.setPassword(password);  
  20.         userMapper.addUserInfo(user);  
  21.     }  
  22.   
  23. }  

 

关联数据库,写 sql 语句。

在 resources 文件夹下,新建 mapper 文件夹,在此文件夹下新建相关的 xml 文件,与mapper包下的名称一致,如UserMapper,xml【由于user表有一个id是自增ID,所以一定一定要在sql语句前面,加上null】,内容如下:

Java Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <mapper namespace="com.yoyo.tool.mapper.UserMapper">  
  4.     <resultMap id="BaseResultMap" type="com.yoyo.tool.entity.User">  
  5.         <result column="username" jdbcType="VARCHAR" property="username" />  
  6.         <result column="password" jdbcType="INTEGER" property="password" />  
  7.     </resultMap>  
  8.     <insert id="addUserInfo" parameterType="com.yoyo.tool.entity.User">  
  9.         INSERT INTO `enewsuser` VALUES(null,#{username},#{password})  
  10.     </insert>  
  11. </mapper>  

 

调用相关服务。

新建 controller 文件包,在此文件包下新建 UserController 类,在此类中新增用户信息,内容如下:

Java Code复制内容到剪贴板
  1. package com.yoyo.tool.controller;  
  2.   
  3. import com.yoyo.tool.entity.Response;  
  4. import com.yoyo.tool.entity.User;  
  5. import com.yoyo.tool.service.UserService;  
  6. import org.springframework.beans.factory.annotation.Autowired;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.bind.annotation.RequestMethod;  
  9. import org.springframework.web.bind.annotation.RestController;  
  10.   
  11. @RestController  
  12. public class UserController {  
  13.   
  14.     @Autowired  
  15.     private UserService service;  
  16.     @RequestMapping(value = "/addUserInfo",method = RequestMethod.GET)  
  17.     public Response addUserInfo(){  
  18.         service.addUserInfo();  
  19.         Response res = new Response();  
  20.         res.setMsg("添加成功");  
  21.         res.setCode(1);  
  22.         return res;  
  23.     }  
  24.   
  25. }  

 

 测试接口:http://localhost:8080/addUserInfo

 

 

entity.User 定义的字段属性与数据表一致

此时的项目目录如下:

1-12.png

 

maven仓库地址:mvnrepository.com/ 

 

本篇实现后代码打包:

tool_2.zip
文件类型: .zip a1a64365da6343144e2f037e72791711.zip (62.27 KB)

 

本文来自于:http://www.yoyo88.cn/study/java/577.html

Powered by yoyo苏ICP备15045725号