跟老雷学习Spring-JdbcTemplate
首先需要用到的jar包----------------------------------------------------------------------------------------------------------------------
整理一下思路:若要连接数据库该怎么做?
第一步:创建数据源
第二步:创建JdbcTemplate
第三步:完成CRUD
第一步:创建数据源
//创建数据源对象
DriverManagerDataSource dataSource = new DriverManagerDataSource();
//设置连接参数 驱动名称
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:127.0.0.1:3306/db_hotel");
dataSource.setUsername("root");
dataSource.setPassword("123456");
连接参数一共设置四个:
1、DriverClassName: 在这个mysql-connector-java-bin.jar包下找到Driver,右键Copy Qualified Name
2、Url:就是数据库的路径和数据库名字
dataSource.setUrl("jdbc:mysql:127.0.0.1:3306/db_hotel");
3、Username:是连接数据库的用户名:我这边是root。
4、Password:是连接数据库的密码
最后测试一下dataSource是否创建成功
System.out.println(dataSource);
测试结果为如下,说明你创建成功了。
第二步:创建JdbcTemplate
//创建JdbcTemplate
JdbcTemplate jdbcTemplate = new JdbcTemplate();
//让JDBC关联数据源
jdbcTemplate.setDataSource(dataSource);
第三步:创建Sql语句测试一下
//创建sql语句
String sql = "select count(*) from sys_user";
Long count = jdbcTemplate.queryForObject(sql, Long.class);
System.out.println(count);
好的,问题来了,测试的结果是这样的(真让人头大)
Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:mysql:127.0.0.1:3306/db_car_lease
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:393)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:477)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:487)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:497)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:503)
at com.lzh.test.TestMan.main(TestMan.java:34)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql:127.0.0.1:3306/db_car_lease
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 6 more
看这个报错,大概就是没有找到合适的数据库连接的驱动包,也就是jar包。
大概猜一下,可能是jar包的版本问题。
花了大概五分钟的时间,换了一个版本的jar包,结果还是一样。这时候我就反应过来了,是不是数据库连接路径错了呢? 果然。问题找到了。
dataSource.setUrl("jdbc:mysql://localhost:3306/db_car_lease");
这里的localhost就是127.0.0.1。主要的问题在出错之前是这样的
dataSource.setUrl("jdbc:mysql:localhost:3306/db_car_lease");
太粗心了。所以说,以后写代码一定要认真一点,越基础的东西漏写了,出错了反而越难找到。
接下来,我们就可以对这个数据库进行操作了,来试试在这个数据库里创建一个user表。
//创建表
String sql = "CREATE TABLE user (id Integer(11),name VARCHAR(32))";
jdbcTemplate.update(sql);
JdbcTempate:
》update:做添加、修改、删除
》queryForObject:查询单个对象
》queryForList: 查询返回一个集合(多条数据)