spring-DataSource
spring支持的dataSource有好多,
如:自带的org.springframework.jdbc.datasource.DriverManagerDataSource
ibatis、c3p0、JDBC、hibernate等等;
首先看第一种,使用自带的datasource:
1、项目结构
提示:spring的jar需要放在WEB-INF的lib目录下,只是放在项目的liberaries中会报错!原因:不同的类加载器加载类的时候寻找的是不同路径下的类。
2、web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 编码过滤器 --><filter><filter-name>EncodeFilter</filter-name><filter-class>com.pt.filter.EncodeFileter</filter-class></filter><filter-mapping><filter-name>EncodeFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 用户管理servlet --><servlet><servlet-name>userManager</servlet-name><servlet-class>com.pt.UserManager</servlet-class></servlet><servlet-mapping><servlet-name>userManager</servlet-name><url-pattern>/user</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 自动加载spring配置文件 --><context-param><!-- 配置文件路径 --><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> </web-app>
web.xml
3、spring的配置文件
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><!-- 配置数据源 --><bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://192.168.61.28:3306/test" /> <property name="username" value="encysys48" /> <property name="password" value="encysys48" /> </bean><bean id = "user" class = "com.pt.Users" scope="singleton"> </bean></beans>
applicationContext.xml
4、spring的datasource的使用
package com.pt;import java.io.IOException; import java.sql.Connection; import java.sql.Statement;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource;import org.springframework.context.ApplicationContext; import org.springframework.web.context.ContextLoader;public class UserManager extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stub doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubresp.setCharacterEncoding("GBK");//获取spring上下文ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();DataSource ds = (DataSource)ctx.getBean("dataSource");Connection conn=null;Statement stmt = null;try{conn=ds.getConnection();stmt = conn.createStatement();if(conn!=null){resp.getWriter().write("获取connection成功");resp.getWriter().write("\n");}else{resp.getWriter().write("获取connection失败");resp.getWriter().write("\n");}String sql = "insert into users(id,name) values('2012001','陶伟基')";stmt.executeUpdate(sql);}catch(Exception ex){}finally{try{conn.close();stmt.close();}catch(Exception ex){}}resp.getWriter().write("测试成功");}}
UserManager.java
5、过滤器
package com.pt.filter; import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;public class EncodeFileter implements Filter {public void destroy() {// TODO Auto-generated method stub }public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {// TODO Auto-generated method stubSystem.out.println("进入编码过滤器");arg0.setCharacterEncoding("UTF-8");arg2.doFilter(arg0, arg1);}public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub }}
EncoderFilter.java
其他文件可以不用写!
二、ibatis数据源
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><!-- 配置数据源 --><bean id = "dataSource" name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://192.168.61.28:3306/test" /> <property name="username" value="encysys48" /> <property name="password" value="encysys48" /> </bean><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><!-- 注入ibatis的配置文件 --><property name="configLocations"><!-- 不加classpath:会出现错误 --><value>classpath:SqlMapConfig.xml</value></property><property name="dataSource"><!-- 此处填写ID --><ref local="dataSource"/></property></bean><bean id = "user" class = "com.pt.Users" scope="singleton"><property name="sqlMapClient" ref="sqlMapClient" /></bean></beans>
applicationCnotext.xml
package com.pt;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;public class Users extends SqlMapClientDaoSupport implements DataObjManager {private int id;private String name;private static Users users;public boolean add(Object obj) {// TODO Auto-generated method stubif(obj instanceof Users)getSqlMapClientTemplate().update("addUser", (Users)obj);elseSystem.out.println("输入类型错误!!!");return false;}public boolean deleteById(Object obj) {// TODO Auto-generated method stubreturn false;}public Object getById(Object obj) {// TODO Auto-generated method stubreturn null;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}}
Users,java
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap><typeAlias alias = "user" type = "com.pt.Users" /><insert id="addUser" parameterClass="user">insert into users values(#id#,#name#)</insert> </sqlMap>
Users.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig><sqlMap resource="com/pt/xml/Users.xml" /> </sqlMapConfig>
SqlMapConfig.xml
package com.pt;import java.io.IOException; import java.sql.Connection; import java.sql.Statement;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource;import org.springframework.context.ApplicationContext; import org.springframework.web.context.ContextLoader;public class UserManager extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stub doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubresp.setCharacterEncoding("GBK");//获取spring上下文ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();//注意,在这儿不可以自己new对象,必须由spring创建,这样ibatis才生效Users user = (Users)ctx.getBean("user");user.setId(20111907);user.setName("panteng");user.add(user);resp.getWriter().write("测试成功");}}
UserManager.java
package com.pt;public interface DataObjManager {public boolean add(Object obj);public boolean deleteById(Object obj);public Object getById(Object obj); }
DataObjManager.java
转载于:https://www.cnblogs.com/tengpan-cn/p/5527195.html
spring-DataSource相关推荐
- 控制台出现Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource
网上查了下,没有找打相关的报错解决办法,所以在解决问题后,整理到网上,帮助有需要的朋友. springboot整合druid时,引入了druid的数据源,在配置文件application.yml中配置 ...
- Spring DataSource JNDI - Tomcat JNDI 配置示例
Spring DataSource JNDI 的 Tomcat配置示例 欢迎使用Spring DataSource JNDI Tomcat示例教程.之前我们看到了如何使用Spring JDBC集成实现 ...
- 启动错误:Could not resolve placeholder 'spring.datasource.url' in value ${spring.datasource.url}
项目启动报错:Could not resolve placeholder 'spring.datasource.url' in value "${spring.datasource.url} ...
- springboot启动突然报错Could not resolve placeholder 'spring.datasource.driver-class-name'
之前好好的项目,今天启动突然报错Could not resolve placeholder 'spring.datasource.driver-class-name' 按照网友的方法,添加了 @Pro ...
- 【Driver】spring.datasource.driverClassName=com.mysql.jdbc.Driver报红
spring.datasource.driverClassName=com.mysql.jdbc.Driver报红 解决方法: 把POM依赖中的<scope>注释掉 检查是否缺少mysql ...
- Spring dataSource配置
2019独角兽企业重金招聘Python工程师标准>>> 不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的.在以往的应用中,数据源一般 ...
- Spring Boot——Druid在application.yml文件中配置【spring.datasource.druid.aop-patterns】无效解决方案
问题描述 在使用aop-patterns配置的时候发现Spring监控无效 Druid版本:1.1.22 如果SpringBoot的配置使用的是properties文件,该配置正常. 如果使用yml作 ...
- spring datasource oracle,spring中2种oracle数据源的配置
value="${proxool.maxConnCount}" /> value="${proxool.minConnCount}" /> valu ...
- Spring之DataSource注入
对于不同的数据库存取需求,我们使用JDBC来解决这个问题,对于不同的数据连接来源需求,Spring则提供了DataSource注入,更换数据来源只要在Bean定义文件中修改配置,而不用修改任何一行程序 ...
- java was datasource_使用Spring Boot配置Druid时dataSource无法被autowired
配置好了dataSource之后,想测试一下有没有配置成功 package com.yang.Controller; import com.alibaba.druid.pool.DruidDataSo ...
最新文章
- 【重读iOS】网络请求2:应用
- svn 提交到远程仓库_Linux学习16gitlab新建项目提交代码
- 20180130之PYTHON学习笔记【PYTHON3写个自动听课功能】
- python语言print函数_Python 的 print 函数
- 全新一代人工智能计算引擎MaxCompute杭州开服,强化阿里云大数据能力,比肩谷歌微软...
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- 【华为云技术分享】大数据容器化成趋势,华为云BigData Pro一马当先
- ssrs 生成pdf_在SSRS报告中生成热图的可用选项
- Java 关于类型类、this.getClass()的理解
- Paypal移动快速支付流程
- 医疗行业某集团公司财务系统迁移阿里云的案例分享
- DT算法(暗像元法)在C6.1中的改进:Aerosol Dark Target (10km 3km) Collection 6.1 Changes
- 使用html2canvas生成海报
- MySQL入门教程(详细,多图例,多示例)
- 计算机学科学年论文方向,计算机学年类论文选题 计算机学年论文题目怎么拟...
- 第七章 MyBatis 缓存配置
- 联想服务器怎么做系统备份,Lenovo笔记本一键恢复8.0如何进行系统备份
- 这45个小技巧,帮你写出一手同事都羡慕的漂亮代码!
- Delphi 7连接MySql 5.5.15
- QQ日志搬家工具 1.0
热门文章
- php强类型 vscode,VSCode + WSL 2 + Ruby环境搭建图文详解
- mysql映射文件_Mybatis SQL映射文件
- python 温度 符号_Python通过小实例入门学习---1.0(温度转换)
- coreos 安装mysql_CoreOS 在 PC 上快速安装方法指南
- python中的运算符_Python 中的神秘运算符
- JavaScript 学习随记——==和===及常见元素的真假值
- 8086 INC, DEC
- 北京市中 高英语听说计算机考,2021年北京高考首次英语听说机考时间确定,共五种题型...
- 百善计算机学习,党建引领学做合一,志愿服务助力乡村振兴——计算机工程学院开展“百善孝为先”主题宣传文化墙墙绘涂鸦活动...
- linux 常用命令02--文件属性 以及软硬链接