发表于: 2019-11-20 22:18:41

1 1116


今天完成的事情

完成spring与mybaits的整合curd

项目目录


POM.XML

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <build>
       <resources>
           <resource>
               <directory>src/main/java</directory>
               <includes>
                   <include>**/*.xml</include>
               </includes>
           </resource>
       </resources>
   </build>
   <groupId>MyBaitsDemo</groupId>
   <artifactId>MyBaitsDemo</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
   <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis-spring</artifactId>
       <version>1.3.0</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-jdbc</artifactId>
       <version>4.1.3.RELEASE</version>
   </dependency>
   <!--spring集成Junit测试-->
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-test</artifactId>
       <version>4.1.3.RELEASE</version>
       <scope>test</scope>
       <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
   </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>4.1.3.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.3</version>
       </dependency>
       <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis</artifactId>
       <version>3.4.0</version>
   </dependency>
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.7.5</version>
       </dependency>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>
   </dependencies>
</project>

USERDAO接口

USERDAO的Mapper文件

<?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:命名空间,随便写,一般保证命名空间唯一 -->
<mapper namespace="com.demo.mapper.UserDao">

   <!--使用别名-->
   <select id="queryUserById" resultType="com.demo.pojo.User">
     select
user.id as id,
user.username as userName,
user.password as password,
user.name as name,
user.age as age,
user.birthday as birthday,
user.sex as sex,
user.created as created,
user.updated as updated
from
user
where user.id = #{id};
</select>

   <select id="queryUserAll" resultType="com.demo.pojo.User">
       select * from user;
</select>

   <!--插入数据-->
   <insert id="insertUser" parameterType="com.demo.pojo.User">
       INSERT INTO user (
username,
password,
name,
age,
sex,
birthday,
created,
updated
)
VALUES
(
#{userName},
#{password},
#{name},
#{age},
#{sex},
#{birthday},
now(),
now()
);
</insert>

   <update id="updateUser" parameterType="com.demo.pojo.User">
       UPDATE user
<trim prefix="set" suffixOverrides=",">
           <if test="userName!=null">username = #{userName},</if>
           <if test="password!=null">password = #{password},</if>
           <if test="name!=null">name = #{name},</if>
           <if test="age!=null">age = #{age},</if>
           <if test="sex!=null">sex = #{sex},</if>
           <if test="birthday!=null">birthday = #{birthday},</if>
           updated = now(),
</trim>
       WHERE
(id = #{id});
</update>

   <delete id="deleteUser">
       delete from user where id=#{id}
</delete>
</mapper>

实体类

spring的配置文件

<?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:jdbc="http://www.springframework.org/schema/jdbc"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsdp ">
   <context:annotation-config/>
   <!-- 数据库连接池 -->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
       <property name="url"
                 value="jdbc:mysql://localhost:3306/mytest?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull"/>
       <property name="username" value="root"/>
       <property name="password" value="admin"/>
   </bean>
   <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="typeAliasesPackage" value="com.demo.pojo"/>
       <property name="dataSource" ref="dataSource"/>
       <property name="mapperLocations" value="classpath:com/demo/mapper/UserMapper.xml"/>
   </bean>
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="com.demo.mapper"/>
   </bean>
</beans>

测试类(spring整合junit)

import com.demo.mapper.UserDao;
import com.demo.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.sql.Date;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)//junit整合spring的测试
@ContextConfiguration("classpath:spring.xml")//加载核心配置文件,自动构建spring容器
public class UserDaoImplTest {
@Autowired
   public UserDao userDao;
   @Test
   public void queryUserById() throws Exception {
System.out.println(this.userDao.queryUserById("1"));
   }
@Test
   public void queryUserAll() throws Exception {
List<User> userList = this.userDao.queryUserAll();
       for (User user : userList) {
System.out.println(user);
       }
}
@Test
   public void insertUser() throws Exception {
User user = new User();
       user.setAge(16);
       user.setBirthday(new Date(2002-02-02));
       user.setName("大鹏");
       user.setPassword("123456");
       user.setSex("");
       user.setUserName("evan");
       this.userDao.insertUser(user);

   }
@Test
   public void updateUser() throws Exception{
User user = new User();
       user.setBirthday(new Date(2002-02-02));
       user.setName("静鹏");
       user.setPassword("654321");
       user.setSex("");
       user.setUserName("evanjin");
       user.setId("1");
       this.userDao.updateUser(user);
   }
@Test
   public void deleteUser() throws Exception{
this.userDao.deleteUser("4");
   }
}

运行结果

今天遇到的问题

依赖包冲突,报错

java.lang.AbstractMethodError:org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L java/lang/Integer

当spring相关依赖包版本比较高的时候,整合包版本必须不小于1.3.0(或者下降spring包的相关版本)

在师兄的推荐下安装了idea的maven helper插件


明天要做的事情

1.将数据库部署到服务器(之前已买阿里云服务器),远程直连

2.部署服务到服务器上,包括Maven,Mysql客户端等。直接用Maven命令跑单元测试。

3.练习日志的查看以及练习debug(调试)

(自我提醒:

记得做笔记!!!!记得做笔记!!!!记得做笔记!!!!

记得做笔记!!!!记得做笔记!!!!记得做笔记!!!!

记得做笔记!!!!记得做笔记!!!!记得做笔记!!!!

记得做笔记!!!!记得做笔记!!!!记得做笔记!!!!



返回列表 返回列表
评论

    分享到