学习mybatis进行连接数据库练习测试,照着敲完代码后,就一直报错,下面还有一行报错找不到mapper.xml文件,修改了一番后又显示打不来applicationContext.xml文件
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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 扫描包中的注解 -->
<context:component-scan base-package="controller"/>
<context:component-scan base-package="test"/>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<!--数据库驱动 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<!--连接数据库的url -->
<property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8" />
<!--连接数据库的用户名 -->
<property name="username" value="root" />
<!--连接数据库的密码 -->
<property name="password" value="root@LC6" />
</bean>
<!--配置MyBatis工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--注入数据源 -->
<property name="dataSource" ref="dataSource" />
<!--指定核心配置文件位置 -->
<property name="configLocation" value="mybatis-config.xml"/>
</bean>
</beans>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
poji包中的Customer.java
package pojo;
public class Customer {
private Integer id;
private String username;
private String job;
private String tel;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Customer [id=" + id + ", username=" + username + ", job=" + job + ", tel=" + tel + "]";
}
}
mapper包中的CustomerMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="day0525.mapper.CustomerMapper">
<!-- 根据id查询一个客户信息 -->
<select id="selectCustomerById" parameterType="Integer"
resultType="day0525.pojo.Customer">
select * from customer where id = #{id}
</select>
<insert id="insertCustomer" parameterType="day0525.pojo.Customer">
insert into customer values(#{id},#{username},#{job},#{tel})
</insert>
<update id="updateCustomer" parameterType="Integer">
update customer set username=#{username},job=#{job},tel=#{tel} where id=#{id}
</update>
<delete id="deleteCustomer" parameterType="Integer">
delete from customer where id=#{id}
</delete>
</mapper>
mapper包中的CustomerMapper.java接口
package mapper;
import org.springframework.stereotype.Repository;
import pojo.Customer;
@Repository
public interface CustomerMapper {
Customer selectCustomerById(Integer id);
void insertCustomer(Customer customer);
void deleteCustomerById(int i);
void updateCustomerById(Customer customer);
}
controller包中的CustomerController.java文件
package controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import mapper.CustomerMapper;
import pojo.Customer;
@Controller
public class CustomerController {
@Autowired
private CustomerMapper mapper;
//查询
public void findCustomerById(){
Customer customer = mapper.selectCustomerById(1);
System.out.println(customer);
}
//插入
public void insertCustomer(){
Customer customer = new Customer();
customer.setId(4);
customer.setJob("网络安全员");
customer.setUsername("王五");
customer.setTel("158");
mapper.insertCustomer(customer);
System.out.println("插入成功!");
}
//删除
public void deleteUser(){
mapper.deleteCustomerById(1);
System.out.println("用户删除成功!");
}
//修改信息
public void updateCustomer(){
Customer customer = new Customer();
customer.setId(2);
customer.setJob("大数据开发员");
customer.setUsername("小白");
customer.setTel("17685454534");
mapper.updateCustomerById(customer);
System.out.println("修改成功!");
}
}
test包中的CustomerTest.java文件
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import controller.CustomerController;
public class CustomerTest {
public static void main(String[] args) {
ApplicationContext appCon = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
CustomerController controller = appCon.getBean(CustomerController.class);
controller.findCustomerById();
}
}
包的分布如图:
数据库是mysql,其中id是主键,自增,不为空
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:613)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at test.CustomerTest.main(CustomerTest.java:10)
Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
... 13 more
我在想是不是applicationContext.xml哪里配置错误了
成功输出来
请求各位帮帮忙
web.xml贴出来