spring dbcp mysql_Springboot+mybatis+dbcp+mysql简单集成

1、添加依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.1.1

commons-dbcp

commons-dbcp

1.4

mysql

mysql-connector-java

2、在src/main/resources建立config目录,创建db.properties:

#jdbc

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://118.25.190.197:3306/test?useUnicode=true&characterEncoding=utf8

jdbc.username=root

jdbc.password=******

jdbc.maxActive=2335

jdbc.maxIdel=120

jdbc.maxWait=100

3、在src/main/java创建包cn.mmweikt.config.database,创建3个类:

package cn.mmweikt.producer.config.database;

import org.apache.commons.dbcp.BasicDataSource;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

@Configuration

//这个注解导入刚才增加的jdbc配置文件

@PropertySource("classpath:config/db.properties")

public class DataSourceConfiguration {

@Value("${jdbc.driver}")

private String driver;

@Value("${jdbc.url}")

private String url;

@Value("${jdbc.username}")

private String username;

@Value("${jdbc.password}")

private String password;

@Value("${jdbc.maxActive}")

private int maxActive;

@Value("${jdbc.maxIdel}")

private int maxIdel;

@Value("${jdbc.maxWait}")

private long maxWait;

@Bean

public BasicDataSource dataSource(){

BasicDataSource dataSource = new BasicDataSource();

dataSource.setDriverClassName(driver);

dataSource.setUrl(url);

dataSource.setUsername(username);

dataSource.setPassword(password);

dataSource.setMaxActive(maxActive);

dataSource.setMaxIdle(maxIdel);

dataSource.setMaxWait(maxWait);

dataSource.setValidationQuery("SELECT 1");

dataSource.setTestOnBorrow(true);

dataSource.setDefaultAutoCommit(true);

return dataSource;

}

}

package cn.mmweikt.producer.config.database;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;

import org.mybatis.spring.SqlSessionFactoryBean;

import org.mybatis.spring.SqlSessionTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import org.springframework.transaction.PlatformTransactionManager;

import org.springframework.transaction.annotation.EnableTransactionManagement;

import org.springframework.transaction.annotation.TransactionManagementConfigurer;

/**

* @author kibana

*

*/

@Configuration

//加上这个注解,使得支持事务

@EnableTransactionManagement

public class MyBatisConfig implements TransactionManagementConfigurer {

@Autowired

private DataSource dataSource;

@Override

public PlatformTransactionManager annotationDrivenTransactionManager() {

return new DataSourceTransactionManager(dataSource);

}

@Bean(name = "sqlSessionFactory")

public SqlSessionFactory sqlSessionFactoryBean() {

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

bean.setDataSource(dataSource);

try {

return bean.getObject();

} catch (Exception e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

@Bean

public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

package cn.mmweikt.producer.config.database;

import org.mybatis.spring.mapper.MapperScannerConfigurer;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* 扫描mybatis的接口

*

* @author kibana

*

*/

@Configuration

// 因为这个对象的扫描,需要在MyBatisConfig的后面注入,所以加上下面的注解

@AutoConfigureAfter(MyBatisConfig.class)

public class MyBatisMapperScannerConfig {

@Bean

public MapperScannerConfigurer mapperScannerConfigurer() {

MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

//获取之前注入的beanName为sqlSessionFactory的对象

mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");

//指定xml配置文件的路径

mapperScannerConfigurer.setBasePackage("cn.mmweikt.mapping");

return mapperScannerConfigurer;

}

}

3、创建cn.mmweikt.mapper包,添加接口:

package cn.mmweikt.producer.mapper;

import java.util.List;

import java.util.Map;

import cn.mmweikt.producer.entity.Order;

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Select;

@Mapper

//在这里,使用@Mapper注解来标识一个接口为MyBatis的接口,MyBatis会自动寻找这个接口

public interface TestDao {

//@Select("select * from wx_userinfo;")

//public Mapfind();

//@Insert("insert into wx_userinfo(openid,status,nickname,sex,city,province,country,headimgurl,subscribe_time) "+

// "values(#{id},1,‘nick‘,1,‘city‘,‘provi‘,‘contr‘,‘img‘,now())")

//public int insert(@Param("id")int id);

@Select("select id,name as body,message_id as messageId from t_order")

public List queryAll();

}

4、创建数据库表t_order(id,name,message_id)和与之对应的实体类,cn.mmweikt.entity.Order:

-- ----------------------------------

-- Table structure for t_order

-- ----------------------------------

DROP TABLE IF EXISTS `t_order`;

CREATE TABLE `t_order` (

`id` varchar(128) NOT NULL,

`name` varchar(128) DEFAULT NULL,

`message_id` varchar(128) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

package cn.mmweikt.producer.entity;

import java.io.Serializable;

public class Order implements Serializable {

private static final long serialVersionUID = -5803120402049000020L;

private String id;

private String messageId;

private String body;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getMessageId() {

return messageId;

}

public void setMessageId(String messageId) {

this.messageId = messageId;

}

public String getBody() {

return body;

}

public void setBody(String body) {

this.body = body;

}

}

5、创建cn.mmweikt.controller测试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值