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
3.使用注解来加载配置数据源 dbconfig/DruidDBconfig.class#数据库配置 + 采用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
- 其中各项必须和上面配置的名称对应
@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, 数据库新增一条数据(提前建立数据库)