发表于: 2017-06-17 18:10:58

2 1149


这几天一直卡在任务17,因为任务17中内容太多(Spring, JDBC, JDBC Template, MyBatis),这些内容我觉得够学一个月的了。每一部分内容大概只了解了10%,但任务本身应该算是完成了,剩下不会的东西认为也很关键,需要自己慢慢补课。


今天完成的任务:任务17——22

上一次完成了JDBC Template 的 DAO的编写,今天完成了MyBatis的DAO的编写,因为比Jdbc要简单很多,就顺便把单元测试也做了,部分单元测试也是按照要求,先写测试,再写接口,再写.xml文档。


Tests:

public class MyBatisAppTest {

static SqlSessionFactory sessionFactory;

SqlSession session;

private UserMapper mapper;

private User testUser;

@BeforeClass

public static void setUpBeforeClass() throws Exception {

String resource = "spring_jdbc_template_app/MyBatisAppConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

inputStream.close();

}


@Before

public void setUp() throws Exception {

session = sessionFactory.openSession();

mapper = session.getMapper(UserMapper.class);

testUser = new User();

testUser.setName("Test Person");

Long curTime = System.currentTimeMillis();

testUser.setCreateAt(curTime);

testUser.setUpdateAt(curTime);

}


@After

public void tearDown() throws Exception {

if (session != null)

session.close();

}


@Test

public void testSelectUserByID() {

User user = session.selectOne("selectUserByID", 1);

assertEquals(Long.valueOf(1), user.getId());

assertEquals(user.getName(), "童志荣");

//测试 mapper.xml 中的AS 是否有效

assertNotNull(user.getRegisterTime());

}

@Test

public void testSelectAllUsers(){

//List<User> userList = session.selectList("selectAllUsers");

//使用mapper interface进行操作

List<User> userList = mapper.selectAllUsers();

for(int i = 0; i < userList.size(); i++){

assertNotNull(userList.get(i).getName());

}

}

@Test

public void testInsertUser(){

int before = mapper.getSize();

mapper.insertUser(testUser);

session.commit();

int after = mapper.getSize();

assertEquals(before + 1, after);

}

@Test

public void testUpdateUser(){

User user = mapper.selectUserByID(1);

//这个测试在中文下失败了,英文可以通过,不知道是什么bug,在控制台中手动输入中文是可以的,可能是编码的错误??

user.setDeclaration("only english");

mapper.updateUser(user);

session.commit();

user = mapper.selectUserByID(1);

//System.out.print(user.getDeclaration());

assertEquals("only english", user.getDeclaration());

}

@Test

public void testDeleteUser(){

int before = mapper.getSize();

mapper.insertUser(testUser);

session.commit();

int last = mapper.getLastIndex();

mapper.deleteUserByID(last);

session.commit();

int after = mapper.getSize();

assertEquals(before,after);

}

 


}

——————————————————————————————————————————————————————————

Mapper Interface:

public interface UserMapper {

public User selectUserByID(int id);


public List<User> selectAllUsers();


public void insertUser(User user);


public int getSize();


public void updateUser(User user);


public int getLastIndex();


public void deleteUserByID(int id);

}

————————————————————————————————————————————————————————————

Mapper 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="spring_jdbc_template_app.UserMapper">

<select id="selectAllUsers" resultType="User">

SELECT id, name, school,

qq, type, way, declaration, link, mentor,

register_time AS

registerTime, create_at AS createTime, update_at AS

updateTime

FROM

user_information

ORDER BY id

</select>


<select id="selectUserByID" resultType="User">

SELECT id, name, school,

qq, type, way, declaration, link, mentor,

register_time AS

registerTime, create_at AS createTime, update_at AS

updateTime

FROM

user_information

WHERE id=#{?}

</select>


<insert id="insertUser" parameterType="User">

INSERT INTO

user_information (name, create_at, update_at)

VALUES (#{name},

#{createAt}, #{updateAt})

</insert>


<select id="getSize" resultType="int">

SELECT COUNT(*) FROM

user_information

</select>


<update id="updateUser" parameterType="User">

UPDATE user_information

SET declaration = #{declaration}

WHERE id=#{id}

</update>


<select id="getLastIndex" resultType="int">

SELECT MAX(id) FROM

user_information

</select>


<delete id="deleteUserByID">

DELETE FROM

user_information WHERE id=#{?}

</delete>

</mapper>

——————————————————————————————————————————————————————

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>

<typeAliases>

<typeAlias type="spring_jdbc_template_domain.User"

alias="User" />

</typeAliases>

  <environments default="development">

    <environment id="development">

      <transactionManager type="JDBC" />

      <dataSource type="UNPOOLED">

        <property name="driver"   value="com.mysql.cj.jdbc.Driver" />

        <property name="url"      value="jdbc:mysql://localhost:3306/user_info?useSSL=false" />

        <property name="username" value="root" />

        <property name="password" value="root" />

      </dataSource>

    </environment>

  </environments>

  <mappers>

  <mapper resource="spring_jdbc_template_app/UserMapper.xml"/>

  </mappers>

</configuration>

————————————————————————————————————————————————————————-

——————————————————————————————————————————————————————————-

明天:任务23.


问题:

1. 对下一个任务(将部署自己服务到服务器上,包括Maven,Mysql客户端等。直接用Maven命令跑单元测试。)不太清楚大概要干什么,只买了一个最便宜的阿里云服务器,数据库是弄好了,但是不知道怎么把程序也放上去,是要打包成什么文件?怎么能直接用Maven命令控制服务器的单元测试?

2. 最近时间比较充裕,对于我现在这种程度,师兄是否建议去线下学习?


总结:对Spring的使用还是不熟练,今天的任务中完全没用到Spring,感觉有些不对劲。


返回列表 返回列表
评论

    分享到