发表于: 2017-08-06 23:19:02

2 1015


今天完成的事情:Spring 初步写了一下  主要是配置文件

                            创建了一个简单的数据库表 代码如下

                                                                      CREATE TABLE user (  

  id int(11) NOT NULL AUTO_INCREMENT,  

  username varchar(20) NOT NULL,  

  password varchar(20) NOT NULL,  

  PRIMARY KEY (id)  

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

                  随便插入一条数据

                            用IDEA新建个maven项目 添加相关依赖

                            结构基本遵循以前的样子 java下新建个model包 下面写个实体类  运用get set方法

package model;

public class User {
private  int  id;
   private  String username;
   private  String password;
   public User( ){
}
public int getId() {
return id;
   }

public void setId(int id) {
this.id = id;
   }

public String getUsername() {
return username;
   }

public void setUsername(String username) {
this.username = username;
   }

public String getPassword() {
return password;
   }

public void setPassword(String password) {
this.password = password;
   }


public String toString(){
return "User [id = "+ id +" , username = "+ username +" , password = "+ password +" ] ";
   }
}

                            java下面新建Dao包 下面新建UserMapper.java作为Dao接口

package Dao;

import model.User;

public interface UserMapper {
public User selectUser(User user);
   public void insertUser(User user);
   public void updateUser(User user);
   public void deleteUser(int userId);
}

                           再新建一个UserMapper.xml文件 实现Dao接口(注意 这里的xml要建立在resource下)             

<?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="Dao.UserMapper">
   <select id="selectUser" parameterType="model.User" resultType="model.User">
       SELECT * FROM user WHERE username=#{username} AND password=#{password}
</select>
   <insert id="insertUser" parameterType="model.User" flushCache="true">
       INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})
</insert>
   <update id="updateUser" parameterType="model.User">
       UPDATE user SET password=#{password} WHERE id=#{id}
</update>
   <delete id="deleteUser" parameterType="int">
       DELETE FROM user WHERE id=#{userId}
</delete>
</mapper>

        在src下创建一个mybatis-config.xml文件,由于我们的数据源部分是要交给Spring管理,所以此处的配置文件只包含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>
   <mappers>
       <mapper resource="UserMapper.xml"/>
   </mappers>
</configuration>

在src下创建一个applicationContext.xml文件作为Spring的配置文件,这里参照网上教程使用Spring自带的Jdbc数据源,可以根据实际需要替换为其他数据源。 

<?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">
   <!--配置数据源   jdbc-->
   <bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName">
           <value>com.mysql.jdbc.Driver</value>
       </property>
       <property name="url">
           <value>jdbc:mysql://localhost:3306/first_a?useUnicode=true&amp;characterEncoding=UTF-8</value>
       </property>
       <property name="username">
           <value>root</value>
       </property>
       <property name="password">
           <value>123123</value>
       </property>
   </bean>
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="jdbcDataSource" />
       <property name="configLocation" value="classpath:mybatis-config.xml"></property>
   </bean>

   <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
       <property name="mapperInterface" value="Dao.UserMapper"></property>
       <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
   </bean>
</beans>

最后 在src下创建一个test包,并在其下创建一个test.java文件 运行

import Dao.UserMapper;
import model.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class test {
public static void main(String[] args) throws IOException{

ApplicationContext ctx = null;
   ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserMapper userMapper = (UserMapper) ctx.getBean("userMapper");
   User u = new User();
   u.setUsername("admin");
   u.setPassword("admin");
   System.out.println(userMapper.selectUser(u));

           //插入(去掉下面的注释进行调试)
       /*
       User insertUser=new User();
       insertUser.setUsername("testUsername");
       insertUser.setPassword("testPassword");
       userMapper.insertUser(insertUser);
       */
           //更新(去掉下面的注释进行调试)
       /*
       u.setId(1);
       u.setPassword("updatePassword");
       userMapper.updateUser(u);
       */
           //删除(去掉下面的注释进行调试)
       /*
       userMapper.deleteUser(9);
       */
       }
}

明天计划的事情:使用接口而不是xml试试  今天卡bug卡了半天进度太慢了 没来得及 继续看Spring 尝试Spring与navicate联合 配置文件也还有点没搞懂

遇到的问题:遇到很多困难 很多错误 大部分是拼写错误 大小写错误 

这个是找不到文件 文件不存在 也是前后名称不一致导致的            

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

解析XML文档的类路径资源嵌套异常 类的路径不存在  地址错了

收获:Ctrl +Shift +F 快速查找  比如大小写错误 就可以使用这个 快速查找

       xml文件一般要写在resource下  否则需要进行以下设置

 <!-- dao继承于manager,manager依赖common,依赖传递到dao -->

    <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。MAVEN会默认扫描

    resource根目录下的xml -->

<build>

        <resources>

            <resource>

                <directory>src/main/java</directory>

                <includes>

                    <include>**/*.properties</include>

                    <include>**/*.xml</include>

                </includes>

                <filtering>false</filtering>

            </resource>

        </resources>

</build>





返回列表 返回列表
评论

    分享到