本文介绍spring-boot采用mysql和jdbc的一个示例。spring-boot的去配置文件确实给开发者带来了很大的方便,从本文开始,介绍几个spring-boot的使用案例。
项目依赖jar包:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- MYSQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <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> </dependency> </dependencies>
数据库采用mysql,orm使用jdbc实现。
下面是application.properties的配置:
spring.datasource.url=jdbc\:mysql\://localhost\:3306/zhujinjun?useUnicode\=true&characterEncoding\=utf-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
数据库(zhujinjun)中有一张表zh_user
CREATE TABLE `zh_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(64) COLLATE utf8_bin NOT NULL, `password` varchar(64) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
下面是抽象Dao类,
public abstract class AbstractJdbcDaoSupport { @Autowired protected JdbcTemplate jdbcTemplate; }
用户表的Dao类,
@Repository public class UserRepository extends AbstractJdbcDaoSupport{ private String querySql = "SELECT r.password FROM zh_user r WHERE r.username=?"; private String insertSql = "insert into zh_user(username,password) values(?,?)"; public String getPassword(final String username) { String passwd = jdbcTemplate.query(querySql, new Object[] { username }, new ResultSetExtractor<String>() { @Override public String extractData(ResultSet rs) throws SQLException, DataAccessException { while (rs.next()) { return rs.getString("password"); } return null; } }); return passwd; } public void saveUser(final User user) { jdbcTemplate.update(insertSql, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); } }); } }
这里就可以实现数据库的访问,所以service类不再展示,可以从我的github账号上获取。
Controller类:
@Controller public class UserController { @Resource private MyService myService; @RequestMapping("/{username}") @ResponseBody public String getPassword(@PathVariable String username) { String passwd = myService.getPasswd(username); return passwd; } @RequestMapping("/saveUser/{username}") @ResponseBody public String saveUser(@PathVariable String username) { User user = new User(); user.setUsername(username); user.setPassword("111111"); try { myService.saveUser(user); return "success!"; } catch (Exception e) { return "failure!"; } } }
最后,spring-boot启动类App.java
@EnableAutoConfiguration @ComponentScan("boot.app,boot.service,boot.dao,boot.domain") public class App { public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args); } }
这样,就完成了一个spring-boot的demo。
测试方法:
1.创建好数据库
2.启动App.Java类
3.浏览器数据输入地址http://localhost:8080/saveUser/abc,成功插入一个用户abc,返回success!
4.浏览器数据输入地址http://localhost:8080/abc,插入用户密码111111
源码:https://github.com/jinjunzhu/spring-boot-jdbc.git
