springboot_jdbctemplat
包结构
poc.xml依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
编写实体,封装+带参+无参,快捷键alt+insert
public class Dog {
private int dogid;
private String dogname;
private String kind;
private int age;
private int sex;
}
DogDao 接口
import com.zzc.entity.Dog;
import java.util.List;
public interface DogDao {
public int insertGrade(String dogname);
public int updateGrade(Dog dog);
public int deleteGrade(Integer dogid);
public List<Dog> findAll();
}
DogDaoImpl实现DogDao接口
@Repository作用:只能标注在 DAO 类上呢?这是因为该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。
@Resource和@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。
@Repository
public class DogDaoImpl implements DogDao {
//导入JDBCTemplate模板
@Resource
private JdbcTemplate jdbcTemplate;
@Override
public int insertGrade(String dogname) {
return jdbcTemplate.update("INSERT INTO dog(dogname) VALUES(?)",dogname);
}
@Override
public int updateGrade(Dog dog) {
return jdbcTemplate.update("UPDATE dog SET dogname=? WHERE dogid=?",dog.getDogname(),dog.getDogid());
}
@Override
public int deleteGrade(Integer dogid) {
return jdbcTemplate.update("DELETE FROM dog WHERE dogid=?",dogid);
}
@Override
public List<Dog> findAll() {
//封装行数据映射
RowMapper<Dog> rowMapper=new RowMapper<Dog>() {
@Override
public Dog mapRow(ResultSet rs, int i) throws SQLException {
Dog dog=new Dog(rs.getInt("dogid"),rs.getString("dogname"));
return dog;
}
};
return jdbcTemplate.query("select * from dog",rowMapper);
}
}
DogService
import com.zzc.entity.Dog;
import java.util.List;
public interface DogService {
public int insertGrade(String dogname);
public int updateGrade(Dog dog);
public int deleteGrade(Integer dogid);
public List<Dog> findAll();
}
DogServiceImpl
Service注解简单可以了解为标识service
import com.zzc.dao.DogDao;
import com.zzc.entity.Dog;
import com.zzc.service.DogService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("dogService")
public class DogServiceImpl implements DogService {
@Resource
private DogDao dogDao;
@Override
public int insertGrade(String dogname) {
return dogDao.insertGrade(dogname);
}
@Override
public int updateGrade(Dog dog) {
return dogDao.updateGrade(dog);
}
@Override
public int deleteGrade(Integer dogid) {
return dogDao.deleteGrade(dogid);
}
@Override
public List<Dog> findAll() {
return dogDao.findAll();
}
}
application.yml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
#mysql数据库名
url: jdbc:mysql:///dog
#数据库账号密码
username: root
password: root
JspRequestBootjsp
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication
public class JspRequestBootjsp {
public static void main(String[] args) {
SpringApplication.run(JspRequestBootjsp.class, args);
}
}
ThymeleafControllers
import com.zzc.entity.Dog;
import com.zzc.service.DogService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
public class ThymeleafControllers {
@Resource
private DogService dogService;
@RequestMapping("/insertGrade")
public int insertGrade(){
return dogService.insertGrade("hahahah");
}
@RequestMapping("/updateGrade")
public int updateGrade(){
return dogService.updateGrade(new Dog(1,"S2"));
}
@RequestMapping("/deleteGrade")
public int deleteGrade(){
return dogService.deleteGrade(2);
}
@RequestMapping("/findAll")
public List<Dog> findAll(){
return dogService.findAll();
}
}
运行结果
其他结果都一样在http://localhost:8080/后输入@RequestMapping括号里的地址就行拉
dubbo_admin
包结构
编写实体,封装+带参+无参,快捷键alt+insert
public class Dog {
private int dogid;
private String dogname;
private String kind;
private int age;
private int sex;
}
创建dog实体
import com.zzc.entity.Dog;
import java.util.List;
public interface DogDao {
public int insertGrade(String dogname);
public int updateGrade(Dog dog);
public int deleteGrade(Integer dogid);
public List<Dog> findAll();
}
DogService接口
import java.util.List;
public interface DogService {
public int insertGrade(String dogname);
public int updateGrade(Dog dog);
public int deleteGrade(Integer dogid);
public List<Dog> findAll();
}
DogServiceImpl实现类
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
//表示service
@Service("dogService")
public class DogServiceImpl implements DogService {
@Resource
private DogDao dogDao;
@Override
public int insertGrade(String dogname) {
return dogDao.insertGrade(dogname);
}
@Override
public int updateGrade(Dog dog) {
return dogDao.updateGrade(dog);
}
@Override
public int deleteGrade(Integer dogid) {
return dogDao.deleteGrade(dogid);
}
@Override
public List<Dog> findAll() {
return dogDao.findAll();
}
}
StartSpringBoot
@MapperScan可以指定要扫描的Mapper类的包的路径,如:@MapperScan(“com.zzc.dao”),同级下就不需要指定
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.zzc.dao")
public class StartSpringBoot {
public static void main(String[] args) {
SpringApplication.run(StartSpringBoot.class,args);
}
}
application.yml
##数据源配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
#数据库名
url: jdbc:mysql:///dog
#数据库账号密码
username: root
password: root
##myabtis配置
mybatis:
#指定实体类
type-aliases-package: com.zzc.entity
#sql路径
mapper-locations: classpath:/mapper/*.xml
##开启日志
logging:
level:
com.boot.dao: debug
DogDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!--dao路径-->
<mapper namespace="com.zzc.dao.DogDao" >
<!--添加数据-->
<insert id="insertGrade">
INSERT INTO dog(dogname) VALUES(${dogname})
</insert>
<!--删除-->
<delete id="deleteGrade">
DELETE FROM dog WHERE dogid=${dogid}
</delete>
<!--查询-->
<select id="findAll" resultType="com.zzc.entity.Dog">
select * from dog
</select>
</mapper>
ThymeleafControllers
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
public class ThymeleafControllers {
@Resource
private DogService dogService;
@RequestMapping("/insertGrade")
public int insertGrade(){
return dogService.insertGrade("111");
}
@RequestMapping("/updateGrade")
public int updateGrade(){
return dogService.updateGrade(new Dog(1,"S2"));
}
@RequestMapping("/deleteGrade")
public int deleteGrade(){
return dogService.deleteGrade(2);
}
@RequestMapping("/findAll")
public List<Dog> findAll(){
return dogService.findAll();
}
}
运行结果
其他结果都一样在http://localhost:8080/后输入@RequestMapping括号里的地址就行拉
springboot_dubbo_consumer生产者springboot_dubbo_provider消费者
生产者包结构
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!-- 去除对默认日志的依赖 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
DubboController
//切记到得包是import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Reference;
import com.zzc.service.IDoSomeService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DubboController {
@Reference
private IDoSomeService iDoSomeService;
@RequestMapping("/dubbo")
public String dubbo(){
String returnValue = iDoSomeService.sayHi();
return returnValue;
}
}
接口
public interface IDoSomeService {
public String sayHi();
}
DubboConsumer启动类
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfiguration
public class DubboConsumer {
public static void main(String[] args) {
SpringApplication.run(DubboConsumer.class,args);
}
}
application.properties
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
server.port=8081
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///dog
spring.datasource.username=root
spring.datasource.password=root
消费这包结构
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!--zookeeper-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!--dubbo-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
```java
在这里插入代码片
接口IDoSomeService
```java
public interface IDoSomeService {
public String sayHi();
}
IDoSomeServiceImpl
import com.alibaba.dubbo.config.annotation.Service;
import com.zzc.service.IDoSomeService;
import org.springframework.stereotype.Component;
//利用Dubbo暴露出一个接口
@Service(interfaceClass=IDoSomeService.class)
@Component
public class IDoSomeServiceImpl implements IDoSomeService {
@Override
public String sayHi() {
System.out.println("生产者生产的IDoSomeService服务,中的sayHi方法");
return "SpringBoot Dubbo";
}
}
DubboProvider
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfiguration
public class DubboProvider {
public static void main(String[] args) {
SpringApplication.run(DubboProvider.class,args);
System.out.println("Dubbo接口暴露成功~");
}
}
application.properties
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///dog
spring.datasource.username=root
spring.datasource.password=root
运行zookeeper的状况service.cmd
先运行生产这在运行消费者