Java框架:Spring Boot :mybatis + Druid数据库连接池 + Spring JDBC

 SpringBoot + mybatis

  • 1.添加依赖 和 build(xml文件打包)
    <dependency> 
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId> 
    </dependency>
    
    <!-- 单元测试 -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-test</artifactId>
    	<scope>test</scope>
    </dependency>
    
    <!-- mybaties -->
    <dependency>
    	<groupId>org.mybatis.spring.boot</groupId>
    	<artifactId>mybatis-spring-boot-starter</artifactId>
    	<version>1.1.1</version>
    </dependency>
    
    <!-- mysql驱动 -->
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    

 

  • <build>
      <resources>
        <resource>
          <directory>src/main/java</directory>
          <includes>
            <include>**/*.xml</include>
          </includes>
        </resource>
      </resources>
    </build>
  • 2.resources/application.properties配置 
  • #数据库配置
    spring.datasource.url=jdbc:mysql://localhost:3306/springtrst
    spring.datasource.username=root
    spring.datasource.password=12345
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
  • 3.Javabean---User
    public class User {
        private Integer id;
        private String username;
        private String password;
    
        public User() {
        }
    
        public User(String username, String password) {
            this.username = username;
            this.password = password;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    }
    
  • 4.mapper
    public interface IUserMapper {
        public void add(String username, String password);
        public User findByUsername(String username);
    }
  • 5.mapper.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" >
    <mapper namespace="com.zjc.mapper.IUserMapper" >
    
        <insert id="add">
            insert into users (username,password) VALUES(#{0},#{1})
        </insert>
    
        <select id="findByUsername" resultType="com.zjc.model.User" parameterType="String">
            select * from users where username = #{username,jdbcType=VARCHAR}
        </select>
    </mapper>
  • 6.Service
  • @Service
    public interface IUserService {
    
        public void add(String username,String password);
        public User findByUsername(String username);
    }
  • @Service
    @Transactional
    public class IUserServiceImpl implements IUserService {
        @Autowired
        private IUserMapper iUserMapper;
    
        @Override
        public void add(String username, String password) {
            iUserMapper.add(username, password);
        }
    
        @Override
        public User findByUsername(String username) {
            return iUserMapper.findByUsername(username);
        }
    
    }
  • 7.Controller
  • @RestController
    @RequestMapping("user")
    public class UserController {
        @Autowired
        private IUserService iUserService;
    
        @RequestMapping("add")
        @ResponseBody
        public String add() {
            String username = "zjc1";
            String password = "zjc1234";
            iUserService.add(username, password);
            return "SUCCESS";
        }
    
        @RequestMapping("find")
        @ResponseBody
        public User findByUsername() {
            String username = "zjc1";
            return iUserService.findByUsername(username);
        }
    }
  • 8.App
  • @EnableAutoConfiguration
    @MapperScan(basePackages = "com.zjc.mapper")
    @ComponentScan(basePackages = {"com.zjc.web", "com.zjc.service"})
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }
  • 9.访问页面  http://localhost:8080/user/add  返回   SUCCESS, 数据库新增一条数据(提前建立数据库)
  • 10.访问页面  http://localhost:8080/user/find  返回 {"username":"zjc1","password":"zjc1234"}

配置Druid数据库连接池 

  •  1.添加依赖
  • <!-- 阿里巴巴数据连接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.25</version>
    </dependency>
    
  • 2.配置application.properties
    #数据库配置   +  采用Druid连接池
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    
    #连接池的配置信息
    spring.datasource.initialSize=5
    spring.datasource.minIdle=5
    spring.datasource.maxActive=20
    spring.datasource.maxWait=60000
    spring.datasource.timeBetweenEvictionRunsMillis=60000
    spring.datasource.minEvictableIdleTimeMillis=300000
    spring.datasource.validationQuery=SELECT 1 FROM DUAL
    spring.datasource.testWhileIdle=true
    spring.datasource.testOnBorrow=false
    spring.datasource.testOnReturn=false
    spring.datasource.poolPreparedStatements=true
    spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
    spring.datasource.filters=stat,wall,log4j
    spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    
    #freemarker配置(不采用JSP)
    #spring.freemarker.suffix=.ftl
    #spring.freemarker.templateEncoding=UTF-8
    #spring.freemarker.templateLoaderPath=classpath:/templates/
    #spring.freemarker.content-type=text/html
    spring.freemarker.request-context-attribute=request
    3.使用注解来加载配置数据源   dbconfig/DruidDBconfig.class
  • 其中各项必须和上面配置的名称对应
    @Configuration
    public class DruidDBConfig {
        private Logger logger = Logger.getLogger(DruidDBConfig.class);
    
        @Value("${spring.datasource.url}")
        private String dbUrl;
    
        @Value("${spring.datasource.username}")
        private String username;
    
        @Value("${spring.datasource.password}")
        private String password;
    
        @Value("${spring.datasource.driverClassName}")
        private String driverClassName;
    
        @Value("${spring.datasource.initialSize}")
        private int initialSize;
    
        @Value("${spring.datasource.minIdle}")
        private int minIdle;
    
        @Value("${spring.datasource.maxActive}")
        private int maxActive;
    
        @Value("${spring.datasource.maxWait}")
        private int maxWait;
    
        @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")
        private int timeBetweenEvictionRunsMillis;
    
        @Value("${spring.datasource.minEvictableIdleTimeMillis}")
        private int minEvictableIdleTimeMillis;
    
        @Value("${spring.datasource.validationQuery}")
        private String validationQuery;
    
        @Value("${spring.datasource.testWhileIdle}")
        private boolean testWhileIdle;
    
        @Value("${spring.datasource.testOnBorrow}")
        private boolean testOnBorrow;
    
        @Value("${spring.datasource.testOnReturn}")
        private boolean testOnReturn;
    
        @Value("${spring.datasource.poolPreparedStatements}")
        private boolean poolPreparedStatements;
    
        @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}")
        private int maxPoolPreparedStatementPerConnectionSize;
    
        @Value("${spring.datasource.filters}")
        private String filters;
    
        @Value("{spring.datasource.connectionProperties}")
        private String connectionProperties;
    
        @Bean     //声明其为Bean实例
        @Primary  //配置主数据源
        public DataSource dataSource(){
            DruidDataSource datasource = new DruidDataSource();
    
            datasource.setUrl(this.dbUrl);
            datasource.setUsername(username);
            datasource.setPassword(password);
            datasource.setDriverClassName(driverClassName);
    
            //configuration
            datasource.setInitialSize(initialSize);
            datasource.setMinIdle(minIdle);
            datasource.setMaxActive(maxActive);
            datasource.setMaxWait(maxWait);
            datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
            datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
            datasource.setValidationQuery(validationQuery);
            datasource.setTestWhileIdle(testWhileIdle);
            datasource.setTestOnBorrow(testOnBorrow);
            datasource.setTestOnReturn(testOnReturn);
            datasource.setPoolPreparedStatements(poolPreparedStatements);
            datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
            try {
                datasource.setFilters(filters);
            } catch (SQLException e) {
                logger.error("druid configuration initialization filter", e);
            }
            datasource.setConnectionProperties(connectionProperties);
    
            return datasource;
        }
    }

SpringBoot + Spring JDBC

  • 1.添加依赖
    <!--Spring JDBC -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    
    <!-- 数据库驱动 -->
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!-- 单元测试-->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-test</artifactId>
    	<scope>test</scope>
    </dependency>
  • 2.resources/application.properties配置 
    #数据库配置
    spring.datasource.url=jdbc:mysql://localhost:3306/springtrst
    spring.datasource.username=root
    spring.datasource.password=12345
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
  •  3.Service
  • @Service
    public interface IUserService {
        public void add(String username,String password);
    }
  • @Service
    public class IUserServiceImpl implements IUserService {
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        @Override
        public void add(String username, String password) {
            String sql = "insert users (username,password)values(?,?)";
            jdbcTemplate.update(sql, username, password);
    
        }
    }
  • 4.Controller
  • @RestController
    @RequestMapping("user")
    public class UserController {
        @Autowired
        private IUserService iUserService;
    
        @RequestMapping("add")
        @ResponseBody
        public String add() {
            String username = "zjc";
            String password = "zjc123";
            iUserService.add(username, password);
            return "SUCCESS";
        }
    }
  • 5.App
  • @EnableAutoConfiguration
    @ComponentScan(basePackages = {"com.zjc.web", "com.zjc.service"})
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }
  • 6.访问页面  http://localhost:8080/user/add  返回   SUCCESS, 数据库新增一条数据(提前建立数据库)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值