Java Spring JDBC访问数据库
一、首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现
1.applicationContext.xml配置如下:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="username" value="root"/> <property name="password" value="zdsoft"/> <property name="url" value="jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>
2.Java的代码如下:
public static void main(String[] args) { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); String sql = "select * from stat_app"; jdbcTemplate.query(sql, new RowCallbackHandler() { @Override public void processRow(ResultSet rset) throws SQLException { System.out.println(rset.getString("source_market") + "\t" + rset.getString("violations_type")); } }); }
说明:
①mysql的url配置中需要注意编码和时区,不然会出现报错。同时&符号必须使用&转义。如果独立成properties就不需要了转义了。
②查询的数据进入processRow里面,每行数据都会调用一次这个方法。
二、使用org.apache.commons.dbcp.BasicDataSource类进行实现
1.首先需要引用jar包,pom.xml如下:
<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
2.applicationContext.xml配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="username" value="root"/> <property name="password" value="zdsoft"/> <property name="url" value="jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>
Java代码就和上面一样了。没什么区别。BasicDataSource多了一个close方法,可以自动管理连接对象。
三、将数据库配置独立出来。上面的配置如果想要把数据库相关配置独立为db.properties。可以首先创建文件db.properties,内容如下:
jdbc.url=jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root jdbc.password=zdsoft
然后applicationContext.xml配置如下:
<!-- 导入配置文件 --> <context:property-placeholder location="classpath:db.properties" /> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean>
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2017-07-26 C#内存压缩zip文件