SpringBoot如何玩转数据库

版权声明:非商业性使用,禁止演绎,转载请保留原文链接及作者 https://blog.csdn.net/qq_39478237/article/details/89646350

使用JDBC

第一步:添加依赖

上一篇中说到很多关于添加依赖后如何进行reimport这里就不在多重复了

<!-- JDBC -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!-- 数据库驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

application.properties配置

resources文件下新建一个名为application.properties的file文件

# 配置数据jdbc
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring
spring.datasource.username=root
spring.datasource.password=******

service

一如往常,还是创建service的接口并实现这个接口

Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。

JdbcTemplate位于Spring-jdbc-4.3.0.RELEASE.jar中。其全限定命名为org.springframework.jdbc.core.JdbcTemplate。要使用JdbcTemlate还需一个这个包包含了一下事务和异常控制,在这里我们先不说事物和异常控制

JdbcTemplate主要提供了以下5类方法

execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

query方法及queryForXXX方法:用于执行查询相关语句;

call方法:用于执行存储过程、函数相关语句。
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public void register(String username, String password) {
        String sql = "insert into user (userName,password) value(?,?)";
        jdbcTemplate.update(sql,username,password);
    }
}

Controller

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserService userService;
    @RequestMapping("/register")
    @ResponseBody
    public String register(String username,String password){
        userService.register(username,password);

        return "Success";
    }
 }

访问http://localhost:8080/user/register?username=zhangsan&password=123456后成功则会出现Success,查看数据库会多出刚刚插入的信息

整合Mybatis

方式一

在创建UserMapper接口,用注解方式操作数据库

public interface UserMapper {

    @Insert("insert user (username,password) values (#{username},#{password})")
    public void save(@Param("username") String username,  @Param("password") String password);

    @Select("select from user where username=#{username,jdbcType=VARCHAR}")
    public User findByUserName(@Param("username") String username);
}

方式二

学过mybatis的都知道,使用mybatis都是xml配置数据库操作,以下是我的xml配置文件

<mapper namespace="com.lxk.mapper.UserMapper">
    <insert id="save">
        insert into user (username,password) values (#{arg0},#{arg1})
    </insert>
    <select id="findByUserName" resultType="com.lxk.model.User" parameterType="String">
        select *from user where username=#{username,jdbcType=VARCHAR}
    </select>
</mapper>

当然有了配置文件,我们就需要去掉UserMapper类中的注解

public interface UserMapper {
    public void save(String username,String password);
    public User findByUserName(String username);
}

当然,如果你也把Spring学过了,你那应该知道,我们使用注解是为了取代少xml文件,因此,这里的两种方式其实是很简单不是吗?

创建Service

同样创建UserService 接口和UserServiceImpl实现类

public interface UserService {
    public void insert(String username, String password);
    public User select(String username);
}
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public void insert(String username, String password) {
        System.out.println(username+"-"+password);
        userMapper.save(username,password);
    }

    @Override
    public User select(String username) {
        User user = userMapper.findByUserName(username);
        return user;
    }
}

创建Controller

@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;
    @RequestMapping("/save")
    @ResponseBody
    public String save(String username,String password){
        userService.insert(username,password);
        return "Save success";
    }

    @RequestMapping("find")
    @ResponseBody
    public User findByUserName(String username){
        User user = userService.select(username);
        return user;
    }
}

启动App

启动App类

@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.lxk.web","com.lxk.service"})
@MapperScan(basePackages = {"com.lxk.mapper"})
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}

访问http://localhost:8080/user/save?username=zhangsan&password=123456 ,出现Save success则是成功,然后查看数据库中是否存在插入的那条

访问http://localhost:8080/user/find?username=zhagnsan时,
出现{"username":"zhangsan","password":"123456"}

配置多数据源

猜你喜欢

转载自blog.csdn.net/qq_39478237/article/details/89646350