一.创建一个Maven项目,在pom.xml文件中添加相关的jar包:
二.
- 在src/main/java路径下创建一个cn.gf.boot包,作为其他类的父包(里面写启动程序).
- 在同路径下创建cn.gf.boot.pojo包,编写实体类.
- 然后创建cn.gf.boot.dao包:
1.在dao包中创建一个UserDao接口,在接口上添加注解@Mapper(作用:告知springboot这个接口有映射配置文件)
2.在dao包中编写mybatis的配置类
2.1 首先在该类上加@Configuration,声明这个类是一个配置类,配置类会自动创建对象并执行,而且配置类必须有@Bean,该注解作用在方法上,用来告知方法产生一个Bean,然后交由spring容器管理.而且这个产生bean的方法只会被spring调用一次.(为什么只会被调用一次呢?)
2.2 因为在该注解下有一个@ConditionalOnMissingBean注解.该注解配合@Bean一起使用.当它们所"修饰"的方法已经产生bean对象,就不会执行该方法,不存在bean对象就执行该方法产生一个.
2.3 下面这个类中方法用来产生一个SqlSessionFactoryBean对象:
package cn.gf.boot.dao;
import java.io.IOException;
import javax.sql.DataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//加注解声明这个类是一个配置类(配置类会自动创建对象并执行)(配置类中必须包含@Bean注解)
@Configuration
public class MybatisConfiguration {
@Bean //方法级别的注解,告知方法产生一个bean,
//然后交由spring容器管理,而且这个产生bean的方法只会被spring调用一次
//当下面的方法产生的bean已经存在了就不执行注解下面的代码块,它和@Bean注解配合一起使用....
@ConditionalOnMissingBean
//下面的这个方法来产生一个SQLSessionFactoryBean对象
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
//1.设置数据源
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
//2.设置mybatis配置文件的路径
sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
//3.new一个解析器对象来获取mybatis的映射文件(mapper.xml)
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//4.获取到的映射文件有多个,声明一个数组来存放它们
Resource[] mapperxml = null;
//读取映射文件到数组中
try {
//通过解析器的getResource()方法来读取映射文件
mapperxml = resolver.getResources("classpath:mybatis/mapper/*.xml");
//把读取到的映射文件设置到工厂中
sqlSessionFactoryBean.setMapperLocations(mapperxml);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//告知实体类的位置,给实体类设置别名
sqlSessionFactoryBean.setTypeAliasesPackage("cn.gf.boot.pojo");
return sqlSessionFactoryBean;
}
//配置扫描dao包
@Bean//这个方法的bean创建条件是先创建好了上面的sqlsessionfactorybean
@ConditionalOnBean(SqlSessionFactoryBean.class)
public MapperScannerConfigurer msc() {
//创建映射配置文件对象
MapperScannerConfigurer msc = new MapperScannerConfigurer();
//设置dao包的路径
msc.setBasePackage("cn.gf.boot.dao");
return msc;
}
}
三.在src/main/resource路径中编写相应的配置
1.在根目录下新建一个application.properties文件,在文件里编写数据库的连接信息.
2.然后在resources目录下创建一个mybatis文件夹,在该文件夹中新建一个mybatis-config.xml文件
3.然后在mybatis文件夹下创建一个mapper文件,在该文件中编写UserDao.xml
四.创建cn.gf.boot.service包,编写UserService.java
五.创建cn.gf.boot.controller包,编写UserController.java
package cn.gf.boot.controller;
import java.io.UnsupportedEncodingException;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.gf.boot.pojo.User;
import cn.gf.boot.service.UserService;
@RestController
public class UserController {
@Resource(name="userservice")
private UserService us;
@PostMapping("/adduser")
public String addUser(HttpServletRequest request, HttpServletResponse response) {
//配置跨域问题
response.setHeader("P3P", "CP=AO PSA OUR");
response.addHeader("Access-Control-Allow-Origin", "*");
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
User user = new User();
user.setUserCode(request.getParameter("usercode"));
user.setUserName(request.getParameter("username"));
user.setUserPassword(request.getParameter("pwd"));
boolean rs = us.addUser(user);
if(rs) {
return "true";
}else {
return "false";
}
}
}
六.在这些包的父包cn.gf.boot中创建一个启动类
此时会发现之前创建好的cn.gf.boot包消失了…真的消失了!!解决办法:
1.在创建好此包的时候现在这个包里把启动类也创建出来.
2.在eclipse菜单栏中Window–>Show View–>Navigator视图模式,此时窗口左端的视图模式会变成层级视图,然后单击boot文件夹,新建启动类即可.
七.前端添加用户页面
运行结果图: