使用开源连接池
jdbc
dbcp
c3p0
druid
加载驱动 Class.forName("com.mysql.jdbc.Driver");或Class.forName("com.mysql.cj.jdbc.Driver");
在spring中可直接在选定的连接池中配置驱动属性,无需手动加载
新的驱动类是' com.mysql.cj.jdbc.Driver', mysql8.0以上版本都是用新驱动,需要在url中加上时区参数 serverTimezone=GMT%2B8 东八区,才不会报错time zone
【注】c3p0连接池中的驱动属性名跟其他连接池不同,属性名是driverClass,配置时要注意
String url="jdbc:mysql://localhost:3306/spring?useSSL=false&serverTimezone=UTC";
MySQL:jdbc:mysql://ip地址:数据库服务器端口号/数据库名?参数=参数值
jdbc:mysql://ip_address:database_port/databaseName?param=paramVal
【注】如果是本地地址且端口号是默认3306(mysql),则可忽略不写
【注】多个url参数配置在xml中:要用 & 来分隔开来
e.g jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
选好连接池后,还要配置jdbc模板
通过源码知道JdbcTemplate中是通过 结构化参数public JdbcTemplate(DataSource dataSource) 或 其父类的 setDataSource(dataSource) 方法 插入数据源的,所以在spring配置中就可以通过 构造方法属性注入
合并
log4j 测试
spring单元测试
import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class SpringJdbcTest { @Resource(name="jdbcTemplate") private JdbcTemplate jdbcTemplate; @Test public void test() { this.jdbcTemplate.update("insert into account values(null,?,?)", "druid1",2000d); } }
【注】上面的测试用例用到了spring-test-x.x.x.jar,如不用这个jar包,可通过下面测试用例
import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; public class SpringJdbcTest { @Test public void test1() { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplate jdbcTemplete = (JdbcTemplate) applicationContext.getBean("jdbcTemplate"); jdbcTemplete.update("insert into account values(null,?,?)", "it",100d); } }
使用属性文件配置数据库连接信息
【方法一】通过
在项目src源文件夹下配置jdbc.properties文件
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8 username=root password=root
再在applicationContext.xml中配置
【方法二】通过context标签
要先在applicationContext.xml的beans标签中添加context约束,就可使用context标签
xsi:schemaLocation=" http://www.springframework.org/schema/context 在项目src源文件夹下配置jdbc2.properties文件 【注】 用context标签读取properties文件,取出的数据key值 不能和 属性注入的name值一样,所以在jdbc2.properties中添加了前缀 欢迎分享,转载请注明来源:内存溢出
http://www.springframework.org/schema/context/spring-context.xsd">
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root
评论列表(0条)