Spring框架基础之SpringBoot应用

SpringBoot 关系型数据库访问

SpringBoot 支持JdbcTemplate,mybatis 、JPA、Hibernate等技术。提供了大量相关的自动配置组件实现对象创建。

创建连接池对象
  • 创建maven project ,在pom.xml文件中导入jar包

  • 在src/main/source文件夹下新建application.properties文件,并配置参数

      - spring.datasource.username=test
      - spring.datasource.password=test
      - spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
      - spring.datasource.driverclassname=oracle.jdbc.OracleDriver
      - spring.datasource.maxIdle=10 	//最大空闲数
      - spring.datasource.minIdle=3		//最小空闲数
      - spring.datasource.InitialSize=10//初始连接数
      - spring.datasource.maxActive=100	//最大活动数
      - spring.datasource.maxWait=1000	//最长等待时间
    
  • 编写配置类,使用@SpringBootApplication开启组件扫描,自动配置等服务

JdbcTemplate 应用
  • 根据表定义实现类

  • 定义Dao接口

  • 定义Dao实现类,并将JdbcTemplate注入Dao实现类

      常用的JdbcTemplate对象的API
      - jdbcTemplate.update() //增删改
      - JdbcTemplate.query() //多行查询
      - JdbcTemplate.queryForObject() //单行查询
      - BeanPropertiesRowMapper // 映射器,将记录映射成实体对象,同名映射规则。
      注:除18种简单值类型外,均需使用映射器 接受返回值
    
mybatis 应用
  • SpringBoot+mybatis 结合使用
    1. 导入Boot 和 mybatis相关jar包

    2. 编写application.properties文件,放入src/main/resources文件下

       注:需添加mybaties.mapper-locations属性
       spring.datasource.username=test
        spring.datasource.password=test
       spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
       mybaties.mapperLocations = classpath:sql/*.xml
      
    3. 编写SQL定义文件放入src/main/resources/sql 文件夹下(分页查询语句)

      <?xml version="1.0" encoding="UTF-8" ?>  
      <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
       "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
      <!-- namespace指定和哪个Mapper映射器接口对应 -->
      <mapper namespace="cn.xdl.mapper.Mapper">
      	<!-- pageSize 每页显示条数  page 页数 
      	<select id="findByPage" resultType="cn.xdl.bean.Emp">
      		select *  from 
      			(select  e.* ,rownum r from emp e where rownum &lt; #{arg0} * #{arg1}+1 
      				order by id desc) where r > #{arg0} * (#{arg1}-1)
      	</select>
      </mapper>
      
    4. 编写Mapper 映射器接口方法,与Sql定义文件对应

    5. 编写启动类RunBoot,在类定义前加@SpringBootApplication 和@MapperScan(basePackage=“cn.xdl.mapper”)

      @SpringBootApplication
      @MapperScan(basePackages= {"cn.xdl.mapper"})
      public class MyBootApplication {
      	public static void main(String[] args) {
      		ApplicationContext app = SpringApplication.run(MyBootApplication.class);
      		Mapper map = app.getBean("mapper",Mapper.class);
      		//按页数查找全部用户
      		List<Emp> emps = map.findByPage(5, 3);
      		for( Emp emp : emps) {
      			System.out.println(emp);
      		}
      	}
      }
      
    • 基于标注形式的SpringBoot+mybatis
      -\
JPA 访问数据库
  • 概念:
    Java Persistent API 是Java持久层API技术。(基于反射技术)
    JPA 实现对象 和关系映射ORM,程序员对对象操作从而实现对数据库表操作。(封装了底层的JDBC+SQL使用过程)。

  • 使用:

    1. 创建连接池对象;

    2. 在pom.xml添加spring-boot-start-data-jpa工具包;

    3. 根据表定义实体类,使用注解标记追加实体类;

      @Entity
      @Table(name="对应数据库表名")
      public class BankUser implements Serializable {
      	/**/
      	private static final long serialVersionUID = 1L;
      	@Id 		//对应主键列名
      	@Column  //若表中列名与实体类属性名相同可省略
      	private Integer id;
      	@Column(name="num")//若名称不同需加name指定表中列名称
      	private String acc_no;
      
      
    4. 定义接口,继承JpaRepository (可以实现增删该查排序分页等功能);

      import org.springframework.data.jpa.repository.JpaRepository;
      //泛型必须是引用类型的参数
      public interface BankDao 
      	extends JpaRepository<BankUser, Integer>{
      }// 可以选择继承:JpaRepository、PagingAndSortingRepository、CrudRepository。
      
    5. 分页操作

      public void ss(){
      	Sort  sort = new Sort( Direction.DESC , " id ") ;
      	Pageable  pageable = PageRequest . of ( page, size, sort);//page参数从0 开始
      	Page<BankUser> list = BankDao.findAll( pageable);
      	Iterator<BankUser> it = list . iterator();
      	while(it.hasNext()){
      		BankUser user = it. next();
      		System.out.println(user.getId()+" "+user.getName());
      	}
      }
      

    注:分页查询需要在application.properties文件中配置dialect 方言,指定生成那种数据库类型分页Sql

      Spring.jpa.show-sql = true
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.oracle10gdialect
    
SpringBoot 测试类
  • 导入junit和spring-boot-starter-test包
  • 在src\test\java 文件夹下编写测试类,并添加相关标注
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = {RunBoot.class})
    public class TestNewRepository{
    	@Autowired
    	private BankDao  bankDao;
    	@Test
    	public void  test(){
    		List<BankUser> list = bankDao.findAll();
    		for(BankUser user:list){
    			System.out.println(user.getId()+" "+user.getName())
    		}
    	}
    }
    
    
    
SpringBoot MVC 应用

设计spring-boot-starter-web工具集合。包含Springmvc、restfull、tomcat服务器等。

开发restful 服务
  1. 创建maven项目,在pom.xml 添加spring-boot-starter-web 等工具集合;
  2. 在application.properties文件中定义tomcat端口,并配置,数据库连接池等参数信息;
    server.port = 8888 //配置端口号
    
    #datasource 相关
    spring.datasource.username=test
    spring.datasource.password=test
    spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
    
    #pagehelper 分页查询相关
    spring.jpa.show-sql=true
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
    
  3. 编写配置类@SpringBootApplication,启动应用
    @SpringBootApplication
    public class RunBoot{
    		public static void main (String [] args){
    			SpringApplication.run(RunBoot.class,args);
    		}
    }
    
  4. 定义Controller,使用@RestController、@RequestMapping/@GetMapping、@Autowired
    @RestController
    public class HelloController {
    	@Autowired
    	private BankDao dao;
    	
    	@GetMapping("/hello")
    	public Map hello() {
    		Map<String,String> map = new HashMap<String, String>();
    		map.put("name", "liming");
    		map.put("age","buzhidao");
    		return map;
    	}
    	@GetMapping("/user/list")//分页 排序查询
    	public List<BankUser> findAll(int page,int size,Sort sort){		
    		Pageable pageable = PageRequest.of(page, size,sort);		
    		List<BankUser> users = dao.findAll(pageable).getContent();
    		return users;
    	}		
    }
    
开发html响应应用(jsp)(不常使用)
  • maven 开发项目时,自带tomcat服务器,但这个tomcat不支持JSP,所以如果使用JSP开发,需要导入相关JAR包 tomcat-embed-jasper
  • 在application.properties 文件中 需配置viewResolver 相关
  •   JSP文件需放在src\main\webapp 文件夹下
      spring.mvc.view.prefix= /
      spring.mvc.view.suffix= .jsp
    
开发html响应模板(thymeleaf)应用
1. thymeleaf 是什么
简单说 ,Thymeleaf 是一个 跟Veloccity 、FreeMarker 类似的 模板引擎,它可以完全代替JSP
2.Thymeleaf 优点
1. Thymeleaf  在是否有网络的情况下皆可运行。
3.  Thymeleaf  开箱即用的特性。可以直接套用模板			实现JSTL,OGNL表达式效果,同时也可扩展和自定义方言。
4. Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能
3. JSP和thymeleaf 模板输出区别:***
  1. 运行机制
    • JSP: JSP—> servlet ----> html
    • 模板: 模板文件 + 模型数据 ---- > html
  2. 复杂度不同
    • JSP 支持语法 复杂
    • 模板 支持模板 表达式
4.模板使用方式***
  1. 引入依赖: 可直接导入Jar包spring-boot-starter-thymeleaf
  2. 默认的模板映射路径是: src/main/resources/templates
  3. 可配置参数
	#thymeleaf start
	spring.thymeleaf.mode=HTML5
	spring.thymeleaf.encoding=UTF-8
	spring.thymeleaf.content-type=text/html
	#开发时关闭缓存,不然没法看到实时页面
	spring.thymeleaf.cache=false
	#thymeleaf end
  1. 常用标签使用案例
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值