springBoot(7)---整合Mybaties增删改查
整合Mybaties增删改查
1、填写pom.xml
- <!-- mybatis依赖jar包 -->
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>1.3.2</version>
- </dependency>
- <!-- web项目依赖jar包 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!-- 热部署依赖jar包 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- </dependency>
- <!-- mysql连接jar包 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <!-- 阿里巴巴druid数据源 -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.6</version>
- </dependency>
pom文件
2、填写application.properties
- #数据驱动可配也可以不配,因为系统会自动识别
- #spring.datasource.driver-class-name =com.mysql.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf-8
- spring.datasource.username =root
- spring.datasource.password =root
- #springboot有自带数据源这个也可不配置
- spring.datasource.type =com.alibaba.druid.pool.DruidDataSource
配置连接属性
- #数据驱动可配也可以不配,因为系统会自动识别
- #spring.datasource.driver-class-name =com.mysql.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf-8
- spring.datasource.username =root
- spring.datasource.password =root
- #让控制台打印SQL语句,一般用于本地开发环境
- mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
- #springboot有自带数据源这个也可不配置
- spring.datasource.type =com.alibaba.druid.pool.DruidDataSource
3、User实体
- import java.util.Date;
- //用户实体
- public class User {
- private int id;
- private String name;
- private String phone;
- private int age;
- private Date createTime;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPhone() {
- return phone;
- }
- public void setPhone(String phone) {
- this.phone = phone;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public Date getCreateTime() {
- return createTime;
- }
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
- }
User实体
4.Springboot主类
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- //@MapperScan会自动扫描里面的包,而且应该是可以自动给每个类装配一个Bean对象
- @SpringBootApplication
- @MapperScan("com.jincou.mapper")
- public class MainApplication {
- public static void main(String[] args) {
- SpringApplication.run(MainApplication.class, args);
- }
- }
5、UserMapper
- import java.util.List;
- import org.apache.ibatis.annotations.Delete;
- import org.apache.ibatis.annotations.Insert;
- import org.apache.ibatis.annotations.Options;
- import org.apache.ibatis.annotations.Result;
- import org.apache.ibatis.annotations.Results;
- import org.apache.ibatis.annotations.Select;
- import org.apache.ibatis.annotations.Update;
- import com.jincou.model.User;
- /**
- * 功能描述:访问数据库的接口
- */
- public interface UserMapper {
- //推荐使用#{}取值,不要用${},因为存在注入的风险
- @Insert("INSERT INTO user(name,phone,create_time,age) VALUES(#{name}, #{phone}, #{createTime},#{age})")
- @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") //keyProperty java对象的属性;keyColumn表示数据库的字段
- int insert(User user);
- //column指数据库中的列,property是指实体的属性名,如果一致就不需要写
- @Select("SELECT * FROM user")
- @Results({
- @Result(column = "create_time",property = "createTime")
- })
- List<User> getAll();
- @Select("SELECT * FROM user WHERE id = #{id}")
- @Results({
- @Result(column = "create_time",property = "createTime")
- })
- User findById(Long id);
- @Update("UPDATE user SET name=#{name} WHERE id =#{id}")
- void update(User user);
- @Delete("DELETE FROM user WHERE id =#{userId}")
- void delete(Long userId);
- }
6、UserServise层
- import com.jincou.model.User;
- public interface UserService {
- //这里只写了个add方法,其它的直接在控制层调用Dao层,正常开发流程都应该写在Service层
- public int add(User user);
- }
UserServise
7、UserServiseImpl
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.jincou.mapper.UserMapper;
- import com.jincou.model.User;
- import com.jincou.service.UserService;
- @Service
- public class UserServiceImpl implements UserService{
- //因为主类的@MapperScan方法,所以自动为UserMapper装配了一个userMapper对象
- @Autowired
- private UserMapper userMapper;
- //这里你传过去的时候user的id为null,而insert之后传回回来的user会把数据库中的id值带回来,真强大
- @Override
- public int add(User user) {
- userMapper.insert(user);
- int id = user.getId();
- return id;
- }
- }
8.Controller类
- import java.util.Date;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.jincou.mapper.UserMapper;
- import com.jincou.model.JsonData;
- import com.jincou.model.User;
- import com.jincou.service.UserService;
- @RestController
- @RequestMapping("/api/v1/user")
- public class UserController {
- //在UserServiceImpl定义了@Service实现类所以可以得到默认首字母小写的对象
- @Autowired
- private UserService userService;
- @Autowired
- private UserMapper userMapper;
- /**
- * 功能描述: user 保存接口
- */
- @GetMapping("add")
- public Object add(){
- User user = new User();
- user.setAge(11);
- user.setCreateTime(new Date());
- user.setName("张三");
- user.setPhone("1880177");
- int id = userService.add(user);
- return id;
- }
- /**
- * 功能描述:查找全部用户
- * 这里和下面是直接调用跳过Servise层,直接到DAO层
- */
- @GetMapping("findAll")
- public Object findAll(){
- return userMapper.getAll();
- }
- /**
- * 查找单个用户
- */
- @GetMapping("find_by_id")
- public Object findById(long id){
- return userMapper.findById(id);
- }
- /**
- * 删除单个用户
- */
- @GetMapping("del_by_id")
- public Object delById(long id){
- userMapper.delete(id);
- return "";
- }
- /**
- *更新用户
- */
- @GetMapping("update")
- public Object update(String name,int id){
- User user = new User();
- user.setName(name);
- user.setId(id);
- userMapper.update(user);
- return "";
- }
- }
测试
1.准备好数据库数据:
- #Sql脚本
- CREATE TABLE `user` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `name` varchar(128) DEFAULT NULL COMMENT '名称',
- `phone` varchar(16) DEFAULT NULL COMMENT '用户手机号',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `age` int(4) DEFAULT NULL COMMENT '年龄',
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
2测试结果
插入用户,看后台的sql语句
文献
1、开发mapper:参考语法http://www.mybatis.org/mybatis-3/zh/java-api.html
2、使用starter, maven仓库地址:http://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
3、 相关资料:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#Configuration
4、 整合问题集合:https://my.oschina.net/hxflar1314520/blog/1800035
https://blog.csdn.net/tingxuetage/article/details/80179772
想太多,做太少,中间的落差就是烦恼。想没有烦恼,要么别想,要么多做。上尉【9】
springBoot(7)---整合Mybaties增删改查的更多相关文章
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
- springboot整合mybatis增删改查(四):完善增删改查及整合swgger2
接下来就是完成增删改查的功能了,首先在config包下配置Druid数据连接池,在配置之前先把相关配置在application.preperties中完善 application.preperties ...
- ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)
在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,以下就仅仅贴出各层实现功能的代码: Jsp页面实现功能的js代码例如以下: <script ...
- SSHE框架整合(增删改查)
1.前期准备:jar包(c3p0.jdbc ,各个框架) web.xml文件:spring的 转码的,和Struts2的过滤器 <?xml version="1.0" e ...
- Spring4.0+Hibernate4.0+Struts2.3整合包括增删改查案例,解决整合中出现的异常
源码下载:http://download.csdn.net/detail/cmcc_1234/7034775 ======================Application.xml======== ...
- springboot整合mybatis增删改查(二):springboot热部署
SpringBoot整合热部署 传统情况下, 我们用idea运行springboot程序时, 如果我们需要修改类里的方法,或者其他信息 我们需要修改完保存,并且重启springboot,有时候会很浪费 ...
- springboot整合mybatis增删改查(三):mybatis逆向工程
上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...
- springboot整合mybatis增删改查(一):项目创建
新建 打开 IDEA 工具,通过 File -> New -> Project->Spring Initializr 主要步骤包括: 选择 Spring Initializr 项目 ...
- spring mvc hibernate spring 整合的增删改查+后台校验+bootstrap
整合之前先知道大概的思路,首先要知道每个框架的重点要点. 1.首先我们从数据库开始 --创建数据库 create database gs --创建表 create table food ( id ,) ...
随机推荐
- mysql的orde by 按照指定状态顺序排序
要求按照以下顺序排序 审核中->审核拒绝->待放款->放款失败->待还款->已结清->已逾期 { id:80, label:'审核中'},{ id:100, lab ...
- HDU-6060 RXD and dividing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6060 多校的题目,每次只能写两道SB题,剩下的要么想不到,要么想到了,代码不知道怎么实现,还是写的 ...
- 招聘ETL开发工程师
上班地点徐汇 本科以上学历 3年以上ETL开发经验熟悉Oracle数据库,精通PL SQL开发与优化,熟悉Vertica或者GreenPlum库优先 熟悉数据库性能优化,有海量数据处理经验优先 自荐 ...
- 如何方便的在windows测试python程序
听说python的网页抓取模块很强大,我想试试看看能给我的网络优化工作带来什么大的帮助,于是跟随廖雪峰老师开始学习python(地址查看),因为我用的是window系统,这就给程序的测试带来了很多麻烦 ...
- ubuntu18.04搭建nfs
1.服务端安装 #apt-get update -y #apt-get install -y nfs-kernel-server #apt-get enable nfs-kernel-server 2 ...
- flume接收http请求,并将数据写到kafka
flume接收http请求,并将数据写到kafka,spark消费kafka的数据.是数据采集的经典框架. 直接上flume的配置: source : http channel : file sink ...
- ExtJS中listener方法和handler方法的区别
listener方法和handler方法的区别在文档中的说明的太玄乎了,看不懂 listeners监听能够对一个click Event事件添加任意多个的事件响应处理函数 而handler处理只能够通过 ...
- IntelliJ IDEA的main方法,for循环,syso的快捷键
原文链接:http://blog.csdn.net/tiantiandjava/article/details/42269173 今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有f ...
- STM32 HAL库的使用心得
1.I2C函数中HAL_I2C_Mem_Write和HAL_I2C_Master_Transmit有啥区别?{ 使用HAL_I2C_Mem_Write等于 先使用HAL_I2C_Master_Tran ...
- win7 docker Toolbox 启动Docker Quickstart Terminal 失败!
解决办法: 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败! 主要是用如下文件启动,临时解决,或设置环境变量