发表于: 2018-09-09 23:55:46
2 408
今天完成的事:
Spring环境搭建和JDBCTemplate使用
先在IDEA中创建Maven,然后修改pom.xml文件添加Spring依赖
<dependencies>
<dependency>
<!--测试-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<!--数据库链接依赖-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<dependency>
<!--spring JDBCTemplate 依赖-->
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<!--spring Context 组件-->
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
</dependencies>
编写VO层
public class Student {
private Integer age;
private String name;
private Integer id;
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
}
编写DAO层
import java.util.List;
import javax.sql.DataSource;
public interface StudentDAO {
//定义数据库链接传递
public void setDataSource(DataSource ds);
//添加操作
public void create(String name, Integer age);
}
编写DAO实现层
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class StudentJDBCTemplate implements StudentDAO {
private DataSource dataSource;
private JdbcTemplate jdbcTemplateObject;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
}
public void create(String name, Integer age) {
String SQL = "insert into Student (name, age) values (?, ?)";
jdbcTemplateObject.update(SQL, name, age);
System.out.println("Created Record Name = " + name + " Age = " + age);
return;
}
}
编写Spring 配置文件 ApplicationContext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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-3.0.xsd ">
<!-- 设置数据库链接参数 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<!-- 把链接参数传递给DAO实现层 -->
<bean id="studentJDBCTemplate" class="com.yiibai.StudentJDBCTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
编写一个测试
public class MainApp {
public static void main(String[] args) {
//读取Spring 配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("application-beans.xml");
//实例化一个DAO实现层的对象,参数为配置文件中的数据链接参数
StudentJDBCTemplate studentJDBCTemplate =
(StudentJDBCTemplate)context.getBean("studentJDBCTemplate");
System.out.println("------Records Creation--------" );
//调用现实层的方法,插入数据
studentJDBCTemplate.create("Maxsu", 19);
studentJDBCTemplate.create("Minsu", 23);
studentJDBCTemplate.create("Allen", 27);
}
}
明天计划的事情:
继续学习Spring,完善代码。
遇到的问题:
Spring 配置文件存放位置困扰我很久,后来发现是在测试时IDEA生成的*.class,并不在原目录而是在target文件下,临时解决方法在IDEA中 Project Structure>Modules> Paths,设置到JAVA主目录,方便调试。
收获:
直观感受就是用了Spring后代码更少了,JDBCTemplate命令比JDBC强大很多。关于Spring还需要很多学习。
评论