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相关推荐

  1. 控制台出现Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource

    网上查了下,没有找打相关的报错解决办法,所以在解决问题后,整理到网上,帮助有需要的朋友. springboot整合druid时,引入了druid的数据源,在配置文件application.yml中配置 ...

  2. Spring DataSource JNDI - Tomcat JNDI 配置示例

    Spring DataSource JNDI 的 Tomcat配置示例 欢迎使用Spring DataSource JNDI Tomcat示例教程.之前我们看到了如何使用Spring JDBC集成实现 ...

  3. 启动错误:Could not resolve placeholder 'spring.datasource.url' in value ${spring.datasource.url}

    项目启动报错:Could not resolve placeholder 'spring.datasource.url' in value "${spring.datasource.url} ...

  4. springboot启动突然报错Could not resolve placeholder 'spring.datasource.driver-class-name'

    之前好好的项目,今天启动突然报错Could not resolve placeholder 'spring.datasource.driver-class-name' 按照网友的方法,添加了 @Pro ...

  5. 【Driver】spring.datasource.driverClassName=com.mysql.jdbc.Driver报红

    spring.datasource.driverClassName=com.mysql.jdbc.Driver报红 解决方法: 把POM依赖中的<scope>注释掉 检查是否缺少mysql ...

  6. Spring dataSource配置

    2019独角兽企业重金招聘Python工程师标准>>> 不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的.在以往的应用中,数据源一般 ...

  7. Spring Boot——Druid在application.yml文件中配置【spring.datasource.druid.aop-patterns】无效解决方案

    问题描述 在使用aop-patterns配置的时候发现Spring监控无效 Druid版本:1.1.22 如果SpringBoot的配置使用的是properties文件,该配置正常. 如果使用yml作 ...

  8. spring datasource oracle,spring中2种oracle数据源的配置

    value="${proxool.maxConnCount}" /> value="${proxool.minConnCount}" /> valu ...

  9. Spring之DataSource注入

    对于不同的数据库存取需求,我们使用JDBC来解决这个问题,对于不同的数据连接来源需求,Spring则提供了DataSource注入,更换数据来源只要在Bean定义文件中修改配置,而不用修改任何一行程序 ...

  10. java was datasource_使用Spring Boot配置Druid时dataSource无法被autowired

    配置好了dataSource之后,想测试一下有没有配置成功 package com.yang.Controller; import com.alibaba.druid.pool.DruidDataSo ...

最新文章

  1. 【重读iOS】网络请求2:应用
  2. svn 提交到远程仓库_Linux学习16gitlab新建项目提交代码
  3. 20180130之PYTHON学习笔记【PYTHON3写个自动听课功能】
  4. python语言print函数_Python 的 print 函数
  5. 全新一代人工智能计算引擎MaxCompute杭州开服,强化阿里云大数据能力,比肩谷歌微软...
  6. 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
  7. 【华为云技术分享】大数据容器化成趋势,华为云BigData Pro一马当先
  8. ssrs 生成pdf_在SSRS报告中生成热图的可用选项
  9. Java 关于类型类、this.getClass()的理解
  10. Paypal移动快速支付流程
  11. 医疗行业某集团公司财务系统迁移阿里云的案例分享
  12. DT算法(暗像元法)在C6.1中的改进:Aerosol Dark Target (10km 3km) Collection 6.1 Changes
  13. 使用html2canvas生成海报
  14. MySQL入门教程(详细,多图例,多示例)
  15. 计算机学科学年论文方向,计算机学年类论文选题 计算机学年论文题目怎么拟...
  16. 第七章 MyBatis 缓存配置
  17. 联想服务器怎么做系统备份,Lenovo笔记本一键恢复8.0如何进行系统备份
  18. 这45个小技巧,帮你写出一手同事都羡慕的漂亮代码!
  19. Delphi 7连接MySql 5.5.15
  20. QQ日志搬家工具 1.0

热门文章

  1. php强类型 vscode,VSCode + WSL 2 + Ruby环境搭建图文详解
  2. mysql映射文件_Mybatis SQL映射文件
  3. python 温度 符号_Python通过小实例入门学习---1.0(温度转换)
  4. coreos 安装mysql_CoreOS 在 PC 上快速安装方法指南
  5. python中的运算符_Python 中的神秘运算符
  6. JavaScript 学习随记——==和===及常见元素的真假值
  7. 8086 INC, DEC
  8. 北京市中 高英语听说计算机考,2021年北京高考首次英语听说机考时间确定,共五种题型...
  9. 百善计算机学习,党建引领学做合一,志愿服务助力乡村振兴——计算机工程学院开展“百善孝为先”主题宣传文化墙墙绘涂鸦活动...
  10. linux 常用命令02--文件属性 以及软硬链接