Spring Boot应用连接数据库MySQL,并编写自定义SQL

来源:互联网 发布:淘宝司法拍卖商铺税费 编辑:程序博客网 时间:2024/06/06 01:35

1、修改pom.xml文件

在项目的pom.xml文件上增加如下代码,添加依赖文件。
<dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>6.0.6</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jdbc</artifactId>    <version>1.5.4.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId>    <version>1.5.4.RELEASE</version></dependency>
2、设置全局配置文件
在src/main/resources/application.properties中设置数据源和jpa配置。

server.port=8080spring.datasource.url=jdbc:mysql://104.100.22.56:3306/kg_on?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=falsespring.datasource.username=55spring.datasource.password=ithcspring.datasource.driverClassName = com.mysql.cj.jdbc.Driver# Specify the DBMSspring.jpa.database = MYSQL# Show or not log for each sql queryspring.jpa.show-sql = true# Hibernate ddl auto (create, create-drop, update)spring.jpa.hibernate.ddl-auto = update# Naming strategyspring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy# stripped before adding them to the entity manager)spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

需要添加的配置都在上面的代码中,不需要另外的XML配置和Java配置。上面代码中的数据库配置,你需要换成你的数据库的地址和用户名密码。hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建。

3、MySQL数据库

安装MySQL,MySQL官方下载连接。安装后,建立一个名为user的表。我的表如下:

4、建立实体

建立Student类。User类用来创建一个User实体,User包含三个属性id,username,password。User实体和Mysql数据库的User表相对应,如上图。

package com.crehc.rwwc.kzg.Entity;import javax.persistence.GeneratedValue;import javax.persistence.*;@Entity@Table(name = "user")public class User {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    @Column(name = "id")    private Integer id;    @Column(name = "username", nullable = false)    private String username;    @Column(name = "password", nullable = false)    private String password;    public User() {}    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}



5、实体的数据访问层UserRepository

respositroy包下建立UserRespositroy接口。UserRespositroy接口继承CrudRespositroy,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll。


package com.crerc.rrrc.krrg.Repository;import com.credithc.rc.kg.Entity.User;import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.CrudRepository;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Repository@Transactionalpublic interface  UserRepository extends CrudRepository<User, String> {    //通过用户名密码查询用户    @Query(value = "select u.* from user  u where  u.username=?1 and u.password =PASSWORD(?2)", nativeQuery = true)    @Modifying    List<User> findUserByName(String username, String password);    @Query(value = "select u.* from user  u where  u.username=?1", nativeQuery = true)    @Modifying    List<User> findByUsername(String username);    @Query(value = "insert into user (username,password) values (?1,PASSWORD(?2))", nativeQuery = true)    @Modifying    Integer addUser(String username, String password);}



6、编写控制器Controller

@RequestMapping(value = "/addUser", method = RequestMethod.POST)@ResponseBodypublic String addUser(@RequestBody JSONObject obj,HttpServletRequest request) {    String username = request.getHeader("username");    String password = request.getHeader("password");    String str = null;    try {        List<User> userList = userRepository.findByUsername(username);        if(userList.size()>0){            return "该用户名已经存在,不能添加!";        }else{            Integer flag =  userRepository.addUser(username,password);            if(flag ==1){                return "添加用户名成功!";            }else{                return "添加用户名失败!";            }        }    } catch (Exception e) {        e.printStackTrace();        return "添加用户名失败!";    }}



这里只说明了Springboot访问MySQL数据库并实现自定义SQL的方法,至于自定义的增删改查的方法,比较简单,这里不赘述。
由于刚接触Springboot不久,以笔记的形式记录下来,若有不足还请指正。









原创粉丝点击