发表于: 2019-12-12 11:59:35
1 1091
今天完成的事情:
1.使用JdbcTemplate连接数据库
2)配置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- 导入资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置 C3P0 数据源 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="19980710"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"></property>
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
</bean>
<!-- 配置 Spring 的 JdbcTemplate -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
3)编写测试类
package com.jdbcTemplate;
import org.junit.BeforeClass;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.sql.SQLException;
public class JdbcTemplateTest {
private JdbcTemplate jdbcTemplate;
private ApplicationContext ac = null;
{
ac=new ClassPathXmlApplicationContext("applicationContext.xml");
jdbcTemplate=(JdbcTemplate) ac.getBean("jdbcTemplate");
}
//测试连接
@Test
public void testDataSource() throws SQLException
{
DataSource dataSource=ac.getBean(DataSource.class);
System.out.println("ok"+dataSource.getConnection());
}
//测试修改数据
@Test
public void testUpdate() {
String sql = "update user set name = ? where id = ?";
jdbcTemplate.update(sql, "张三", 1);
}
}
2.复习Java基础
3.简单练习了Debug
明天计划的事情:使用JDBCTemplate的时候分离Interface和Imple,学习Mybatis
遇到的问题:
1.Debug的Step Into功能失灵,进不去方法中。网上有Eclipse失灵的解决办法,没有找到idea中的解决办法
2.添加依赖报错无法下载(问题在师兄的帮助下解决了,但具体原因不太清楚,上网搜了下可能的原因,可能是因为和之前添加的依赖发生冲突导致的)
收获:
1.依赖注入
依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
2.继承性
B:父类、超类、基类、superclass
体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有属性和方法。
2)一个类只能有一个父类
1)一个类可以被多个子类继承
2)一个类只能有一个父类
4)子类继承父类后,就获取了直接父类以及间接父类中声明的属性和方法
4.c3p0是什么?
c3p0是一个库。它扩展了传统的jdbc数据库连接池,并且支持JDBC3规范和JDBC2的标准扩展。
5.为什么使用c3p0?
首先,c3p0是一种jdbc数据库连接池。那么为什么使用数据库连接池呢?因为数据库连接是一种关键的、有限的、昂贵的资源。传统的模式(如传统的java web项目中,servlet的beans中建立数据库连接),每次连接都需要验证用户,消耗了大量的时间和资源。而数据库连接池在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已经建立的空闲连接对象。使用完毕后,用户不关闭连接,而是将数据库连接对象放回连接池中。数据库连接池管理数据连接的建立、断开,同时监视数据库连接数量和使用情况。使用数据库连接池会显著提高整个应用程序的伸缩性(大大提高了连接数量)和健壮性(能够应对大量用户频繁连接数据库,减少系统资源的消耗),提高应用程序的性能指标。
评论