您的位置:首页 > 编程语言 > Java开发

初学springboot+Mybatis+MySQL+idea创建简单项目

2018-07-18 17:29 806 查看

初学springboot+Mybatis+MySQL+idea创建简单项目

spring boot 好处是配置极少,可以达到快速开发的目的。

mybatis:小巧、方便、高效、简单、直接、半自动

一、搭建项目过程

1.File-->new Project-->Spring Initializr(Project SDK(java 1.8))-->Project Metadata(group--包名、Artifact--项目名)

-->dependencies(勾选web(web)、SQL(MySQL,JDBC,Mybatis))-->project location(项目位置)-->finish

 

2.自动生成pom.xml文件(包括项目名/包名/版本号/依赖等)。

因为上述过程勾选了web、MySQL、JDBC、Mybatis,所以在pom.xml文件会自动生成依赖

3.自动生成了程序入口代码DemoApplication.java

4.java文件夹主要存放.java文件(model,dao,service,controller)

resources文件夹主要存放配置文件(.html,.jsp,.js文件放在static文件夹里面)

5.application.properties中的配置

[code]#设置项目端口
server.port=8081
#连接数据库相关配置
spring.datasource.url=jdbc:mysql://localhost:3306/user_db?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=xn1004
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#扫描到类/mapper.xml
mybatis.typeAliasesPackage=com.example.demo01.model
mybatis.mapper-locations=classpath*:mapper/**/*.xml

至此,所有准备工作已经完成。

具体逻辑比较简单,需要注意的是,

dao层@Mapper,

service层@Service、@Autowired,

controller层@RestController或@Controller,这些注解不可遗漏。。

关于mapper.xml

      在mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。

当namespace绑定接口后,可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句,如下:

二、遇到的问题

在添加完用户后,想要重新查所有用户,

直接调用searchUser()方法是不可行的,

用@Controller注解直接return "index"报错(是视图……SSL)。。

用ModelAndView重定向到页面后就可以。

ModelAndView如其名称所示,它代表了Spring Web MVC中呈现画面时所使用的Model与View,由于Java一次只能返回一个物

件,所以ModelAndView的作用封装这两个物件,以方便一次返回Model与View这两个物件。

  • 1.注解

RestController 和Controller 的应用。

RestController Controller
return 内容 页面
json/xml  

使用RestController注解,其中方法无法返回jsp/html页面,返回的是return的内容。

(eg: return "index"        想要到index.html页面-->显示的是index)

如需返回json,xml或自定义mediaType内容到页面,需要在对应方法上加@ResponseBody

如果需要返回指定页面,则需要用@Controller

用ModelAndView重定向到页面

[code]ModelAndView mv = new ModelAndView("redirect:/index.html");
  • 2. redirect/forword
redirect forword
客户端行为,url改变 服务端行为,url不改变
不能共享数据 共享数据(传值)
效率低 效率高
间接转发(重定向) 直接转发(请求转发)

三、Mybatis相关问题

mapper.xml

因为数据库设置id主键,自增,在insert时,可以不加id,如下:

[code]insert into user_tab(name,age) values(#{name},#{age})

不指定字段时,有时需要用到该主键,要有useGeneratedkeys="true",keyProperty="对应主键对象“,这两个属性

[code]<insert id="addUser" useGeneratedKeys="true"  keyProperty="id" >
insert into user_tab values(#{id},#{name},#{age})
</insert>

四、Navicat的使用

  • Navicat数据库管理工具
  • 设置id为primary key, auto_increment时,在给表中添加数据时,不用填写id的值,否则,后面的id不会自动递增,需手动输入值。

五、jquery  ajax

url、type、dateType都是String类型的参数

url:发送请求的地址

type:规定请求的类型(get,post)get是从服务器上获取数据,post是向服务器传送数据。默认是get,

         put和delete也可以使用,但仅部分浏览器支持

dataType:服务器响应的数据类型(XML,html,script,json,jsonp,text)

如果不指定,JQuery将自动根据http包信息返回responseXML或responseText,并作为回调函数参数传递

  •          xml:返回XML文档,可用JQuery处理。
  •          html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
  •          script:返回纯文本JavaScript代码。
  •          json:返回JSON数据。
  •          jsonp:JSONP格式。
  •           text:返回纯文本字符串 

async:true为异步,false为同步

success:请求成功时返回的函数。

jquery遍历,$.each()函数,遍历处理data,可以是数组、DOM、json等,取决于直接给定或者ajax返回的类型

它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥

有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。

function (index, item)中index是当前元素的位置,item是值

success后,触发删除超链接,绑定id进行删除,动态获取当前行id,拼接的问题,尽量单一,提升代码的可扩展性。

$('<a>').text('删除').attr('href', 'deleteUser?id=' + item.id);

六、idea快捷键的使用

刚开始使用idea,创建类或者添加注解时,以红色字体显示,表示没有导包

[code]import org.springframework.beans.factory.annotation.Autowired;

常用快捷键

  • Alt+Enter,导包
  • alt+insert,自动生成get,set方法
  • ctrl+/,注释/取消注释
  • ctrl+shift+/,多行注释/取消注释
  • Ctrl+Alt+L,格式化代码
  • Ctrl+X,删除行
  • Ctrl+D,复制行
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: